Batch file 查询带有空格的注册表项

Batch file 查询带有空格的注册表项,batch-file,Batch File,我正在尝试编写一个批处理文件,以确定电脑是否安装了特定的MS修补程序,并且运行的是XP SP2,而不是SP3 由于注册表项在“Windows XP”中有一个空格,我目前甚至无法使第一部分正常工作 到目前为止,批处理文件: @echo off reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB932823-v3\>nul if %errorlevel% EQU 0 goto :nohotfix

我正在尝试编写一个批处理文件,以确定电脑是否安装了特定的MS修补程序,并且运行的是XP SP2,而不是SP3

由于注册表项在“Windows XP”中有一个空格,我目前甚至无法使第一部分正常工作

到目前为止,批处理文件:

@echo off

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB932823-v3\>nul
if %errorlevel% EQU 0 goto :nohotfix
if %errorlevel% EQU 1 goto :hotfixpresent


:Hotfixpresent
@echo hot fix is present
pause

:nohotfix
@echo No hotfix is present
pause
GOTO目前只是未来代码的占位符

我现在得到了以下错误-错误:无效的命令行参数

有人知道我该怎么处理这件事吗

谢谢

Rob在键路径周围使用引号(

e、 g


这只会导致以下错误消息-错误:系统无法找到指定的注册表项或值-这不会让脚本的其余部分完成,因为该项不存在。大多数情况下,这意味着没有安装特定的更新。它没有设置errorlevel变量吗?是的,它没有设置errorlevel,因此e脚本的其余部分无法继续-有什么想法吗?感谢您让itme为我查看此内容。另外,您的
reg query
语法错误。请检查
reg query/?
输出。您需要指定
/ve
/v value\u name
。如果缺少密钥,Windows 8 reg.exe将设置错误级别。请仔细检查是否存在错误el.@anishsane Win 8中也不需要/v/ve。我怀疑XP版本将以同样的方式工作-它将返回密钥中的任何内容。编辑我确认XP的reg.exe(SP3)以同样的方式工作。
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB932823-v3">nul