我有以下内容,意在执行以下操作:
计算出HKEY_USERS中的所有SID,然后在reg query中使用该变量来检查每个HKEY_USER的密钥是否存在。但是,它告诉我它是一个无效的密钥,因为它基本上只是在设置hkeyuserpath时错过了%%~na
,然后在reg查询上失败了。我究竟做错了什么?
for /f %%a in ('reg query HKEY_USERS') do (
echo %%~na
set hkeyuserpath="HKEY_USERS\%%~na\Software\Microsoft\Windows\CurrentVersion\Run"
reg query %hkeyuserpath% /v *WhatIamLookingfor*
if "%ERRORLEVEL%" EQU "0" goto HELLO
if "%ERRORLEVEL%" EQU "1" goto GOODBYE
:HELLO
echo Hello
GOTO END
:GOODBYE
GOTO END
)
:END
pause
答案 0 :(得分:2)
您正在for循环中设置hkeyuserpath,因此您必须使用delayedexpansion来访问变量。
setlocal enabledelayedexpansion
for /f %%a in ('reg query HKEY_USERS') do (
echo %%~na
set hkeyuserpath="HKEY_USERS\%%~na\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "!hkeyuserpath!" /v *WhatIamLookingFor*
if not errorlevel 1 (
Echo(Hello & goto :end
) ELSE (
Echo(Goodbye
)
)
:end
pause