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

Свойства Виртуального Рабочего Стола В Командной Строке
Пакетный файл-копирование двух новых файлов из одной папки в другую
Как получить доступ к cmd другого компьютера из cmd моего компьютера?
Командная строка Windows для получения размера физического диска в ГБ
пакетный файл работает нормально вручную, но строка, которая запускает exe не удается при пакетном запуске в планировщике задач
Программно ассоциировать расширения файлов с application on Windows
Вывод Wmic в переменную
Как закрыть открыть папку с помощью CMD или пакетный файл?
Как выполнить папку (vpk.exe) с cmd
Как создать пользователя Windows из командной строки, используя пароль из файла
Запуск пакетных команд через последовательное подключение PuTTY
Как зеркально отразить число с помощью основных языков, таких как пакетная обработка, сценарий Visual Basic или сценарий PowerShell? [закрытый]
Как создать bat-файл для конвертации видео файлов в папку с помощью ffmpeg
Выйти из пакетного файла из подпрограммы
Как я могу пакетный процесс Camtasia студии.файлы camrec?

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

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