![]() |
Изменение значения ключа реестра по правилу.
Есть ключ реестра, находящийся в HKLM\путь , имя Имя, значение чтото_хвостик. Нужно перезаписать значение, убрав все начиная с _ (нижнего подчеркивания). Помогите плз.
|
set key="HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters"
set val="Hostname" for /f "delims=_" %%a in ('reg query %key% /v %val%^|find %val%') do ( for %%b in (%%a) do set secs=%%b ) reg add "%key%" /f /v "Hostname" /d "%secs%" Проблема в том, что находит в _ типе (REG_SZ) и выдает на выходе REG. Как сделать, чтоб обрабатывал только значение? |
Какая версия ОС?
|
Windows 7
|
Внимание! Перед применением скрипта обязательно:
1) Создайте контрольную точку восстановления системы. 2) Экспортируйте оперируемую ветвь реестра в файл .reg Ограничения кода: - Значение параметра не должно начинаться со знака разделителя (_), иначе будет перезаписано значением не до, а после этого знака. - Код работает только в OS ver. >= Vista. Код:
::Код предназначен только для работы в OS ver. >= Vista. |
Цитата:
|
В reg.exe version 3.0 (смотрел на XP x32 en) отсутствуют ключи /f /k в запросе query. Кроме того, формат выходящих данных отличается, что в нашем случае критично для разбора под циклом.
Простите, но универсальной конструкции для сканирования реестра в обеих системах не знаю (еще не придумал). |
Diskretor, спасибо, ясно.
|
Код:
@Echo Off |
gora, спасибо!
|
Время: 19:02. |
Время: 19:02.
© OSzone.net 2001-