Я ищу быстрый и простой способ (мне не нужна проверка ошибок) для переключения между двумя reg-файлами, открыв пакетный файл.
Если пользователь запускает пакетный файл, пакетный файл должен объединить reg-файл A с реестром. Если пользователь запустит его снова, пакетный файл должен объединить reg-файл B с реестром. Если пользователь запустит его снова, файл A будет объединен... вы поняли.
В общем, я думаю, что есть два способа сделать это:
- Создайте какую-то переменную для хранения того, какой регистр следует запускать следующим.
- Проверьте значения разделов реестра, чтобы увидеть, какой регистр был объединен последним (вероятно, предпочтительный метод).
В настоящее время я делаю это:
REG QUERY "KeyName" /v "ValueName" | Find "x"
IF ERRORLEVEL 1 regedit /S file1.reg
IF ERRORLEVEL 0 regedit /S file2.reg
Часть REG QUERY, похоже, работает, но в операторах IF ERRORLEVEL
что-то идет не так. Но, возможно, мне следует использовать совсем другой метод.
Надеюсь на некоторые предложения .. Спасибо заранее!
ИЗМЕНИТЬ
Извините за некоторую расплывчатость: я считаю, что предыдущее решение не сработало, потому что, когда первая IF
верна, вторая IF
будет тоже после первой команды IF
. Поэтому мне понадобится оператор IF ELSE
, чтобы предотвратить запуск второго IF
.
Теперь я придумал это решение, которое работает:
REG QUERY "KeyName" /v "ValueName" | Find "x
IF ERRORLEVEL 1 (REGEDIT /S "file1.reg") ELSE REGEDIT /S "file2.reg"
Мне также было интересно: будет ли улучшение, если ключ/значения реестра будут добавлены в пакетный файл вместо использования отдельных файлов .reg? Типы значений — REG_BINARY и REG_DWORD.