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

有什么想法可能发生在这里吗?

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 回答