我想找到注册表的指定值,如果存在,则去执行作业
在这里我的脚本使用了但不成功
: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
来提供更多确定性。