Код, который у вас есть, не работает, потому что if exist
используется только , чтобы проверить, существуют ли папки или файлы. Его синтаксис:
if exist "C:\foldername\" (do something) else (optionally do something else)
для папок и:
if exist "C:\filename" (do something) else (optionally do something else)
для файлов.
Мое предлагаемое решение (как упомянуто в комментариях) следующее:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" >nul 2>&1
if %errorlevel% EQU 0 (goto :OptionOne) else (echo Registry key not found. & pause>nul & exit /b 1)
:OptionOne
some code
goto :eof
, который проверяет, вернулась ли команда errorlevel
отличается чем равно 1
или больше (ключ реестра существует) или 1
или больше (это не так есть).