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"

私はこれを示している 1 台の 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"

興味深いことに、次のように for /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

ここで何が起こっているのでしょうか?

4

2 に答える 2

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 バージョンで機能します。

于 2013-09-04T21:51:44.860 に答える
0

当たり前!スクリプトからその部分を取り出し、'%' を削除するのを忘れたので、%%I ではなく %I になるはずだったので、何も返されませんでした。

于 2013-09-04T21:01:09.527 に答える