Я пишу пакетный скрипт, чтобы проверить, существует ли значение ключа реестра, и у меня возникли некоторые проблемы.
Когда я непосредственно указываю ключ для поиска, %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
windows
batch
windows-registry
Alex Eshoo
источник
источник
ECHO !ERRORLEVEL!
?Ответы:
Следующие
echo
s0
почему-то этого я не понимаю.Вам нужно EnableDelayedExpansion вместе и использовать
ECHO !ERRORLEVEL!
,Исправленный пакетный файл:
Выход:
Дальнейшее чтение
источник
EnableDelayedExpansion
? Я не могу понять из ss64, вы можете объяснить это?