批处理判断注册表值是否存在

@echo off
set rr = reg query "HKEY_CURRENT_USER\Software\aa" /ve
if not "%rr%" == "aa" (
echo 不存在
) else (
echo 存在
)
判断项 aa的默认值是不是aa这个为什么老是不对呢

第1个回答  推荐于2016-06-30
你现在的写法是判断变量rr是否为空,
而你这个变量却保存了那个注册表查询语句,并不是查询命令的执行结果。
你应该用以下的形式来取得注册表值。
for /f "tokens=" %%a in (
'reg query "HKEY_CURRENT_USER\Software\aa" /ve'
) do (
...
)

当然,我这个例子是不完整的,如果你要从一个命令的返回结果中取值,那要利用for命令来操作。具体的如果对for命令不懂的话,那我也很难教你。
如果你有心学这个命令的话,那你可以先看看我百度空间时有一个有用到注册表操作的例子。看不懂的话,那再来问我。
http://hi.baidu.com/%D2%E4%C1%D6%D7%D3/blog/item/131e61fbe5fdc4156d22eb19.html本回答被提问者采纳
相似回答