检查批处理文件中的多个注册表项

时间:2016-05-09 09:49:36

标签: batch-file

我需要在启动程序之前检查注册表中的多个键(它们不应该存在)。用于检查注册表项的广泛传播的解决方案仅适用于一个检查,因为它将全局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
    )
)

2 个答案:

答案 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#