Batch file 在Reg查询中使用变量
我有以下内容,旨在完成以下工作: 计算出HKEY_用户中的所有SID,然后在reg查询中使用该变量检查每个HKEY_用户是否存在密钥。但是,它告诉我这是一个无效的密钥,因为它在设置hkeyuserpath时基本上错过了Batch file 在Reg查询中使用变量,batch-file,scripting,registry,windows-scripting,Batch File,Scripting,Registry,Windows Scripting,我有以下内容,旨在完成以下工作: 计算出HKEY_用户中的所有SID,然后在reg查询中使用该变量检查每个HKEY_用户是否存在密钥。但是,它告诉我这是一个无效的密钥,因为它在设置hkeyuserpath时基本上错过了%%~na,然后在reg查询中失败。我做错了什么 for /f %%a in ('reg query HKEY_USERS') do ( echo %%~na set hkeyuserpath="HKEY_USERS\%%~na\Software\Microsof
%%~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
您正在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
谢谢,但是这似乎不会产生与上述相同的错误。请尝试此操作。当循环第一次找不到要查找的内容时,您正在退出循环。如果我为WhatIamLookingFor输入了一个有效的值,这对我来说很好