Я пишу пакетный скрипт, чтобы проверить, существует ли значение ключа реестра, и у меня возникли некоторые проблемы.
Когда я непосредственно указываю ключ для поиска, %ERRORLEVEL%
обновляет соответственно. Пример ниже отображает значение 1, как и ожидалось.
REG QUERY HKLM /v NONEXISTENT_KEY
ECHO %ERRORLEVEL%
Однако я проверяю наличие набора ключей в файле, поэтому я зацикливаюсь на нем с помощью FOR
, Следующее эхо 0 по какой то причине мне не понятно.
FOR /F "tokens=1-2 delims=," %%A IN (myFile.txt) DO (
REG QUERY "%%A" /v "%%B"
ECHO %ERRORLEVEL%
Примечание: структура файла, над которым я зацикливаюсь, показана в следующем примере:
HKEY_LOCAL_MACHINE\PATH\TO\KEY,SOME VALUE
Только что попробовал это, уровень ошибки все еще возвращается как 0 несмотря на то, что значение ключа не существует.
—
Alex Eshoo
РЕДАКТИРОВАТЬ Извините, я забыл изменить мои "%" на "!". Это работает после этого.
—
Alex Eshoo
Да, только что подтверждено тестированием. Пишу ответ.
—
DavidPostill
ECHO !ERRORLEVEL!
?