Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
koros
1 / 1 / 1
Регистрация: 14.11.2014
Сообщений: 29
1

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

16.04.2015, 11:33. Просмотров 1976. Ответов 2
Метки нет (Все метки)

Добрый день!
Стоит следующая задача. Считывается значение параметра реестра <Param> и, если оно равно значению <Value>, то удаляется. Задача должна выполняться из комстроки , а не из батника. Если в значении <Param> нет кириллицы, то работает так:
Windows Batch file
1
FOR /F "Tokens=1,2*" %a in ('"REG QUERY "<Param>" /VE 2>nul|FIND /I "REG_""') DO IF "%~c"=="<Value>" REG DELETE "<Param>" /VE /F
Как сделать так, чтобы работало и если в значении <Param> есть кириллица?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2015, 11:33
Ответы с готовыми решениями:

Проверка значения параметра реестра
Есть команда REG QUERY...

Удаление значения параметра реестра
Можно ли удалить значение, и оставить параметр пустым с помощью bat файла, и как это сделать. С...

Копирование значения параметра реестра
Добрый день! Пожалуйста, необходим батник или что-то типа, чтобы из определенного параметра,...

Поиск значения параметра реестра и его замена
Приветствую, если коротко хочу батником переподключать шары. Самый простой способ который нашел это...

Добавить в код условие для выполнения определённых команд в зависимости от значения параметра реестра
Здравствуйте. Не могу составить условие правильно к REG QUERY &quot;HKLM\SOFTWARE\Microsoft\Windows...

2
Dragokas
Эксперт WindowsАвтор FAQ
17098 / 7153 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
16.04.2015, 20:57 2
Установите в Панель управления -> "Языки и региональные стандарты" язык для программ, не поддерживающих Юникод -> Русский.
0
koros
1 / 1 / 1
Регистрация: 14.11.2014
Сообщений: 29
17.04.2015, 12:11  [ТС] 3
Dragokas,

Спасибо, но это не помогает. Да и выполняться команда может на любом компьютере.

Но я разобрался. Надо:
Windows Batch file
1
CMD /V:on /c CHCP 1251&CMD /C FOR /F "Tokens=1,2*" %a in ('"REG QUERY "<Param>" /VE 2>nul|FIND /I "REG_""') DO IF "%~c"=="<Value>" REG DELETE "<Param>" /VE /F
При этом запускать для проверки надо не из cmd.exe, а из Пуск-Выполнить.

Добавлено через 38 минут
Появилась следующая проблема. Если в параметре реестра <Param> нет пробелов, то всё нормально. Для обхода ограничения на пробелы воспользовался следующим:
Windows Batch file
1
CMD /V:on /c CHCP 1251&CMD /C FOR /F "Delims=" %k IN ('"REG QUERY "<Param>" /VE 2>nul|FIND /I "REG_""') DO SET x=%k&FOR /F "Tokens=1*" %i in ('"CMD /V:on /C ECHO !x:*REG_=!^"') DO IF "%~j"=="<Value>" REG DELETE "<Param>" /VE /F
Но не работает . В %i второго цикла попадает строка !x:*REG_=!, то есть !х! не раскрывается.
Причем
Windows Batch file
1
FOR /F "Delims=" %k IN ('"REG QUERY "<Param>" /VE 2>nul|FIND /I "REG_""') DO SET x=%k&FOR /F "Tokens=1*" %i in ('"CMD /V:on /C ECHO !x:*REG_=!^"') DO IF "%~j"=="<Value>" REG DELETE "<Param>" /VE /F
работает

Как же всё-таки заставить работать?

Добавлено через 1 час 25 минут
Наконец-то получились - нужны скобки.
Окончательный вариант
Windows Batch file
1
CMD /c CHCP 1251&CMD /C FOR /F "Delims=" %k IN ('"REG QUERY "<Param>" /VE 2>nul|FIND /I "REG_""') DO (SET x=%k^&FOR /F "Tokens=1*" %i in ('"CMD /V:on /C ECHO !x:*REG_=!^"') DO IF "%~j"=="<Value>" REG DELETE "<Param>" /VE /F)
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2015, 12:11

Удаление параметра реестра
Всем привет. Есть в реестре по адресу HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\ такие записи:...

Вывод параметра реестра на экран
Здравствуйте,не подскажите как вывести значение параметра реестра на экран при помощи командной...

Пробел в имени параметра реестра
Пробел в имени параметра реестра вызывает неправильный вывод: @echo off SetLocal...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.