2013-09-04 2 views
0

고유 이름을 수집하는 다음 코드는 모든 컴퓨터에서 작동하지만 그 중 일부는 작동합니다.루프가 고유 이름을 얻기 위해 아무 것도 반환하지 않습니다.

FOR /F "skip=2 tokens=3*" %%I in ('reg query "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" /v Distinguished-Name') DO @ECHO "%%I %%J" 

난이 전시되어 하나 개의 XP 시스템에보고하고, 아무 소용이 아래와 같은 대안을 시도하고있다 : 나는 포함하지 않는 경우

FOR /F "tokens=3*" %%I in ('reg query "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" /v Distinguished-Name |findstr "CN="') DO ECHO "%%I %%J" 

흥미롭게도, 나는 결과를 잘 얻을 수를 대/이런 F :

reg query "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" /v Distinguished-Name |findstr "CN=" 
    Distinguished-Name REG_SZ CN=xyz123,OU=Test-5,DC=test,DC=com 

또는

reg query "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" /v Distinguished-Name 

! REG.EXE VERSION 3.0 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine 
     Distinguished-Name REG_SZ CN=xyz123,OU=Test-5,DC=test,DC=com 

여기에 어떤 아이디어가있을 수 있습니까?

답변

0

Duh! 스크립트에서 그 부분을 가져 와서 '%'을 (를) 삭제하는 것을 잊어 버렸으므로 %% I 대신 % I이 (가) 있어야하므로 아무 것도 반환되지 않았습니다.

1
FOR /F "tokens=2*" %%I in ('reg query "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" /v Distinguished-Name^|find "REG_SZ"') DO ECHO "%%J" 

모든 Windows 버전에서 작동합니다.

+0

처음에는 쿼리가 몇 대의 컴퓨터에서 원하는 것을 반환하지 않는다고 생각했지만 쿼리 자체에는 아무런 문제가 없었습니다. 문제는 명령 행에서 스크립트를 테스트하기 위해 스크립트를 사용하지 않았고 물론 추가 명령으로 인해 실행되지 않았기 때문입니다. –

관련 문제