2013-03-20 1 views
1

실행하려는 배치 파일이 있지만 계속 오류가 발생합니다. 나는이 질문이 I can't get the right syntax to use WMIC in batch file과 비슷하다고 생각하지만, findstr에 파이핑 중이기 때문에 dbenham의 대답은 내 경우 완벽하게 작동하지 않습니다. 다음은 배치 파일의 일부입니다 (매달려있는 부분)./F %% I in ('wmic nic where'Manufacturer! = "Microsoft"및 Macaddress IS NOT NULL 'index index^|)에 대한배치 파일의 For 루프에서 WMIC 명령이 작동하지 않습니다.

FINDSTR/R [0-9]) 할 ( 는 %% 에코 I )

WMIC 명령은 cmd를에서 실행하거나 배치 파일의 자신의 라인입니다,하지만 난 그것을 얻을 수없는 경우 잘 작동

for 루프에서 실행하십시오. 누구든지 나를 도울 수 있습니까?

감사합니다, 존

답변

3

이이 방법을 시도는 :

for /f "tokens=2 delims==" %%I in (
    'wmic nic where "manufacturer!=\"Microsoft\" and macaddress is not null" get macaddress /format:list 2^>NUL' 
) do echo %%I 

당신은 당신의 따옴표가 중첩하여 인용 물건을 백 슬래시 - 탈출해야합니다.

+0

감사를 완료 할 수 있습니다! 그 트릭을하는 것처럼 보였다. 목록 형식과 delim을 사용하여 findstr에 파이프하는 것보다 더 좋게 설정 했습니까? 또한, 2> null이 무엇인지 말해 줄 수 있습니까? 나는 전에 이것을 보았지만 그것에 대해 아무것도 몰랐다. – jh6004

+0

그래, 하나의 명령을 실행하는 것이'findstr'을 통해 출력을 파이프하는 것보다 더 효율적입니다. '2> NUL'은 표준 오류를 블랙홀로 재전송합니다. 그 이유는 순수하게 화장품이 있다는 것입니다. 'wmic'는 좋은 이유없이 빈 줄을 stderr에 종종 인쇄합니다. stderr를 무의미하게 리디렉션하면 그 쓸모없는 줄 바꿈이 숨겨집니다. 리디렉션은 필요하지 않지만 'wmic'을 사용할 때 포함시켜야하는 습관이 있습니다. 어쨌든, 자세한 정보는 [Batch Files - Redirection] (http://www.robvanderwoude.com/redirection.php)을 참조하십시오. – rojo

+0

도움을 주셔서 감사합니다. – jh6004

0

WMIC에는 사용자 입력을 기다리는 기능이 있습니다.

echo. ^| wmic 

으로 예

wmic 

, 교체하는 경우는 명령이 빠른 응답