|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Изменение параметра реестра. |
|
CMD/BAT - [решено] Изменение параметра реестра.
|
Старожил Сообщения: 493 |
Доброго времени суток!
Помогите пожалуйста с написанием батника. Существует некоторый параметр реестра HKCU\software\programma\parametr типа REG_SZ. Значение этого параметра представляет собой: либо пустое значение либо строку вида что-то типа: site1.com либо строку состоящую из набора различных имён и масок разделённых между собой точкой с запятой типа: site1.com;megasite2.com;123.org;*.org.ru либо вообще этотого параметра может не существовать - в этом случае ничего не меняем (т.е. параметр не создаём) Если же параметр существует, то поступаем следующим образом: Нужно проанализировать его значение на присутствие маски *.domain.site.com Если эта маска присутствует, то ничего не меняем. Если присутствует только domain.site.com то дописываем к нему *. чтоб получилось *.domain.site.com Если нет ни *.domain.site.com ни domain.site.com то добавляем маску *.domain.site.com (через точку запятую) в значение этого параметрареестра. Заранее благодарен! |
|
Отправлено: 12:13, 12-09-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off setlocal enabledelayedexpansion set "KeyName=HKCU\Software\programma" set "Value=parametr" set "Domain=domain.site.com" ( for /f "delims=" %%i in (' reg query "%KeyName%" /v "%Value%" /f "%Domain%" /d 2^>nul^| findstr /il "%Domain%" ') do ( set var_1=%%i for %%j in (%%i) do ( if /i "%%j"=="%Domain%" ( set var_1=!var_1:*REG_SZ=! for /f "tokens=*" %%k in ("!var_1:%Domain%=*.%Domain%!") do ( reg add "%KeyName%" /v "%Value%" /d "%%k" /f>nul ) ) ) ) )|| ( for /f "delims=" %%i in (' reg query "%KeyName%" /v "%Value%" 2^>nul^| findstr /ilc:"%Value%" ') do ( set var_1=%%i for %%j in (%%i) do ( set var_2=%%j ) if /i !var_2!==REG_SZ ( reg add "%KeyName%" /v "%Value%" /d "*.%Domain%" /f>nul ) else ( for /f "tokens=*" %%j in ("!var_1:*REG_SZ=!") do ( reg add "%KeyName%" /v "%Value%" /d "%%j;*.%Domain%" /f>nul ) ) ) ) endlocal exit /b |
Отправлено: 21:16, 13-09-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 493
|
Профиль | Отправить PM | Цитировать Georgio, Спасибо большое!
Работает! Попробую разобраться для себя как ... )) |
Отправлено: 16:34, 15-09-2014 | #3 |
Старожил Сообщения: 493
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, как работает конструкция:
и можно ли было бы вместо блока
for /f "tokens=*" %%k in ("!var_1:%Domain%=*.%Domain%!") do ( reg add "%KeyName%" /v "%Value%" /d "%%k" /f>nul ) |
Отправлено: 18:51, 15-09-2014 | #4 |
Старожил Сообщения: 493
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 12:36, 17-09-2014 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Создание/изменение параметра реестра "(По умолчанию)" при помощи reg.exe | SANIOK_AV | Скриптовые языки администрирования Windows | 5 | 22-04-2022 11:11 | |
CMD/BAT - Экспорт параметра реестра в другую ветку | Valek271183 | Скриптовые языки администрирования Windows | 0 | 05-07-2013 17:45 | |
VBS/WSH/JS - Изменение параметра реестра VBSом | Nikitosehr | Скриптовые языки администрирования Windows | 8 | 16-05-2012 18:24 | |
CMD/BAT - [решено] Получение значения параметра реестра | IfoR | Скриптовые языки администрирования Windows | 6 | 08-04-2010 12:54 | |
CMD/BAT - [решено] Получение значения параметра реестра | user_123 | Скриптовые языки администрирования Windows | 3 | 05-04-2010 13:10 |
|