Перед началом работы программы мне необходимо проверить реестр на несколько ключей (они не должны существовать). Широко распространенное решение для проверки ключей реестра работает только для одной проверки, так как устанавливает глобальное значение 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
)
)
Это не будет работать, и это также имеет неправильно логики кода. – Himmel
@Himmel - я удалил один избыточный 'equ'. – npocmaka
errorlevel будет иметь значение 1, независимо от того, как только он будет установлен в 1, так что это приведет к ложному отрицательному состоянию результата в вашем случае. – Himmel