我需要在启动程序之前检查注册表中的多个键(它们不应该存在)。用于检查注册表项的广泛传播的解决方案仅适用于一个检查,因为它将全局ErrorLevel设置为1.下面的示例将无法正常工作。
@echo off
reg query HKEY_LOCAL_MACHINE\SOFTWARE\mykey >nul
if %errorlevel% equ 0 (
echo "mykey exists - do nothing"
) else (
reg query HKEY_LOCAL_MACHINE\SOFTWARE\mykey2 >nul
if %errorlevel% equ 0 (
echo "mykey2 exists - do nothing"
) else (
run my program
)
)
答案 0 :(得分:0)
像这样使用错误级别需要delayed expansion。您可以尝试使用IF ERRORLEVEL
@echo off
reg query HKEY_LOCAL_MACHINE\SOFTWARE\mykey >nul
if %errorlevel% equ 0 (
echo "mykey exists - do nothing"
) else (
reg query HKEY_LOCAL_MACHINE\SOFTWARE\mykey2 >nul
if errorlevel 1 (
run my program
) else (
echo "mykey2 exists - do nothing"
)
)
答案 1 :(得分:0)
从这个例子中获得灵感:
#hello#