Похожие вопросы

Как отправить пакетный файл по электронной почте
Как бы я дифф двух файлов mbox в умный способ?
Программно ассоциировать расширения файлов с application on Windows
Проверка наличия ключа в реестре windows с помощью пакетного файла
DelayedExpansion & Проблемы Замены Переменных
Добавить комментарий к WinRar архиву с пакетным файлом
Как я проверяю результат сценария ftp с файлом bat? [закрытый]
WinPE, Startnet.CMD и передача переменных во второй пакетный файл не работают
runas / savecred ошибка 1311 нет сервера входа
Скрипт для получения изображений в папке с размерами a.txt файл
Импорт.файл reg в профиль пользователя по умолчанию через командную строку
Как запустить copype.cmd для WinPE из пакетного файла
Пакетный файл переименовать случайным буквенно-цифровым
Использование a.bat-файл для извлечения строки из текстового файла в zip-папке
Почему xcopy возвращает "недопустимое число параметров"?

Проверка наличия значения раздела реестра в циклическом пакете

Я пишу пакетный скрипт, чтобы проверить, существует ли ключ реестра и у меня возникли некоторые вопросы.
Когда я непосредственно указать ключ для поиска,%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_MACHINEPATHTOKEY,SOME VALUE
5
задан Alex Eshoo
источник

1 ответов

следующее echos 0 по какой-то причине, что я не понимаю.

FOR /F "tokens=1-2 delims=," %%A IN (myFile.txt) DO (
    REG QUERY "%%A" /v "%%B"
    ECHO %ERRORLEVEL%

вам нужно EnableDelayedExpansion вместе и использовать ECHO !ERRORLEVEL!.

исправлен пакетный файл:

@echo off
setlocal enabledelayedexpansion
FOR /F "tokens=1-2 delims=," %%A IN (myFile.txt) DO (
    REG QUERY "%%A" /v "%%B"
    ECHO !ERRORLEVEL!
  )
endlocal

выход:

> type myFile.txt
HKEY_LOCAL_MACHINE\PATH\TO\KEY,SOME VALUE

> test
ERROR: The system was unable to find the specified registry key or value.
1

Читать Далее

1
отвечен DavidPostill 2017-08-10 09:27:58
источник

Другие вопросы batch windows windows-registry