【问题标题】:reg Query not working in for loop bat scriptreg Query 在 for loop bat 脚本中不起作用
【发布时间】:2016-09-06 17:15:36
【问题描述】:

以下是我在 .bat 脚本中的代码

 FOR /F "tokens=2*" %%A IN ('REG.EXE QUERY "HKLM\Software\Microsoft\Internet Explorer" /V "Version"') DO SET IEVer=%%B

为此我遇到了错误

 'REG.EXE QUERY "HKLM\Software\Microsoft\Internet Explorer" /V "Version"' is not recognized as an internal or external command, operable program or batch file.

我也试过

 FOR /F "tokens=2*" %%A IN ('%systemRoot%\system32\REG QUERY  "HKLM\Software\Microsoft\Internet Explorer" /V "Version"') DO SET IEVer=%%B

仍然遇到同样的错误。

但是在运行中

 D:\>REG.EXE QUERY "HKLM\Software\Microsoft\Internet Explorer" /V "Version" 

我得到输出

 HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
 Version    REG_SZ    9.11.9600.18378

这只发生在一台机器上???有什么想法吗??

【问题讨论】:

  • 如果您在以下键上运行相同的批处理文件,那么该特定机器上会发生什么? HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer

标签: batch-file for-loop registry


【解决方案1】:

我尝试了您的代码,它在 Windows 7 x64 上对我来说运行良好

FOR /F "tokens=2*" %%A IN ('REG.EXE QUERY "HKLM\Software\Microsoft\Internet Explorer" /V "Version"') DO SET IEVer=%%B 
echo %iever% 
pause

回声返回我:9.11.9600.18426

  • c:\Temp>SET IEVer=
  • c:\Temp>SET IEVer=9.11.9600.18426
  • c:\Temp>echo 9.11.9600.18426
  • 9.11.9600.18426 暂停

【讨论】:

  • 对我来说,它适用于除一台以外的所有机器。机器类型为 Windows 2012 R2。我无法调试它在这台机器上失败的原因。
  • 我刚刚测试了两台不同的 2012 r2 计算机,它也可以正常工作,所以问题实际上是计算机而不是脚本。
【解决方案2】:

对于 BAT 文件:

for /f "usebackq tokens=3* skip=2" %%v in (`reg query "HKLM\Software\Microsoft\Internet Explorer" /v "Version"`) do set iever=%%v

对于 CMD 测试:

@for /f "usebackq tokens=3* skip=2" %v in (`reg query "HKLM\Software\Microsoft\Internet Explorer" /v "Version"`) do @echo %v

使用参数“usebackq”和反引号在“for循环”中运行应用程序

如果需要,更改 tokensskip 参数。

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2016-04-24
    • 2012-04-10
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多