【发布时间】:2020-03-16 15:26:06
【问题描述】:
我正在做一个简单的脚本来检查 MS Office 版本读取注册表键值。将是密钥不存在的情况(未安装办公室)我多次使用 reg.exe 查询 KEY/Check 2>nul 但无法在 FOR 行内使其工作。 这是一行:
FOR /f "tokens=3" %%a in ('%SystemRoot%\System32\reg.exe query "HKEY_CLASSES_ROOT\Word.Application\CurVer" ^| %SystemRoot%\System32\findstr /C:"(Default)"') do set _Off_ver=%%a
我试过了:
FOR /f "tokens=3" %%a in ('%SystemRoot%\System32\reg.exe query "HKEY_CLASSES_ROOT\Word.Application\CurVer" 2>nul ^| %SystemRoot%\System32\findstr /C:"(Default)"') do set _Off_ver=%%a
或
FOR /f "tokens=3" %%a in ('%SystemRoot%\System32\reg.exe query "HKEY_CLASSES_ROOT\Word.Application\CurVer" ^| %SystemRoot%\System32\findstr /C:"(Default)"'2>nul ) do set _Off_ver=%%a
在许多其他地方,但我最终得到了错误:
> was unexpected at this time.
任何人都知道我可以如何隐藏错误:
ERROR: The system was unable to find the specified registry key or value.
在那条 FOR 线里面?
谢谢
【问题讨论】:
-
2^>nul........ -
@jeb 谢谢!我刚刚发现了相同的,仍然不确定他们为什么在 FOR 中使用 ^,但会阅读它:)
-
从您的问题中我不知道您是否尝试通过即点即用或 MSI 安装的 Office 产品确定版本。如果它是 2019 之前的 MSI 版本,请随时查看a previous answer of mine,它可以这样做,(在这种情况下,使用 Word 产品)。如果您对该答案有任何具体问题,请随时在该答案下适当发表评论。
-
无法隐藏,也无法捕捉...
标签: batch-file cmd