REG查询以查找注册表的指定值,如果存在,则转到



我想找到注册表的指定值,如果存在,则去执行作业

在这里我的脚本使用了但不成功

:SkinReplacementKIS64
CLS
ECHO.
REG Query "HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeKasperskyLabAVP19.0.0settings" /v "EnableSelfProtection" |find "1" >nul & IF %ErrorLevel% EQU 0 (
ECHO.
ECHO Please disable Kaspersky self-defense first before doing the action!
ECHO.
pause
GOTO SkinReplacementKIS64
) else (
CLS
ECHO ***************************************************************************************
ECHO Kaspersky Tweaker v1.4 for KFA, KAV, KIS, KTS, KSC (19.0.0.1088)
ECHO ***************************************************************************************
ECHO.
net stop AVP19.0.0
dark_skin_kis.exe /p12345678
net start AVP19.0.0
ECHO.
pause
GOTO KIS64
)

我错了什么?请帮忙

使用for /f来获取值并测试它?

@echo off
:SkinReplacementKIS64
CLS
ECHO.
for /f "delims=" %%a in ('REG Query "HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeKasperskyLabAVP19.0.0settings" /v "EnableSelfProtection"') do set "$val=%%a"
if %$val%==1 (
ECHO.
ECHO Please disable Kaspersky self-defense first before doing the action!
ECHO.
pause
GOTO SkinReplacementKIS64
) else (
CLS
ECHO ***************************************************************************************
ECHO Kaspersky Tweaker v1.4 for KFA, KAV, KIS, KTS, KSC (19.0.0.1088)
ECHO ***************************************************************************************
ECHO.
net stop AVP19.0.0
dark_skin_kis.exe /p12345678
net start AVP19.0.0
ECHO.
pause
GOTO KIS64
)

根据我的评论,最简单的方法是从潜在匹配项中排除第一行:

Reg Query "HKLMSOFTWAREWOW6432NodeKasperskyLabAVP19.0.0settings" /V "EnableSelfProtection" 2>Nul | Find /V "HKLM" | Find "1" >Nul ...

您甚至可能希望使用x1而不是1来提供更多确定性。

最新更新