Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/89: Рейтинг темы: голосов - 89, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 4

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

12.03.2014, 11:14. Показов 17268. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

А подскажите, как сделать так:
Нужно, чтобы находило параметр Leave on Server в ветке HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles и меняло значение на 0xe0002

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2014, 11:14
Ответы с готовыми решениями:

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

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

Изменение значения параметра в реестре
Как выполнить правку реестра через bat? Попробовал так, но выходит ошибка. Вот код батника: REG ADD...

10
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
12.03.2014, 14:34
а зачем находить?
не проще сразу зписать значение?
0
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 4
12.03.2014, 14:47  [ТС]
Так как это параметр может находится в разных местах и мне нужно это сделать в сети из 300 ПК.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.03.2014, 16:49
Лучший ответ Сообщение было отмечено Kиpилл как решение

Решение

Не забудьте сделать контрольную точку восстановления системы перед применением твика.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
SetLocal EnableExtensions
 
set root=HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles
set param=Leave on Server
set value=0xe0002
 
For /F "delims=" %%a in ('reg query "%root%" /f "%param%" /s ^| find /i "%root%"') do (
  echo Found: %%a
  reg add "%%a" /v "%param%" /t REG_DWORD /d %value% /f
)
 
pause
2
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 4
13.03.2014, 10:45  [ТС]
Добрый день!

Спасибо, под Windows 7 работает, а вот по XP не хочет.
Подскажите как побороть?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
14.03.2014, 03:41
Лучший ответ Сообщение было отмечено Kиpилл как решение

Решение

На XP reg.exe ver.3.0 (функционал урезан + формат вывода другой).
Забыл предупредить.

Через рекурсивную функцию:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
 
set root=HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles
set param=Leave on Server
set value=0xe0002
 
call :RegEnum "%root%" "%param%"
if errorlevel 1 For /L %%C in (1,1,%errorlevel%) do (
  echo "!return.%%C!"
  reg add "!return.%%C!" /v "%param%" /t REG_DWORD /d %value% /f
)
pause
exit /B
 
:RegEnum %1-key %2-parameter
  :: Поиск параметра в разделe %1 и всех его подразделах (совместимо с reg.exe ver.3,4,5)
  :: код возврата - кол-во ключей в словаре Return.
  set return=0
  reg query "%~1" /v "%~2" >NUL 2>&1 && (set "return.1=%~1"& set return=1)
  call :RegEnumEx "%~1" "%~2"
Exit /B %return%
 
:RegEnumEx
  :: выход сразу, если в подразделах параметра нет
  reg query "%~1" /s |>NUL find /i "%~2" || exit /B
  For /F "delims=" %%k in ('reg query "%~1" /s ^| find /i "%~1"') do (
    if /i "%%k" neq "%~1" (
      reg query "%%k" /v "%~2" >NUL 2>&1 && (
        set /A return+=1
        set "return.!return!=%%k"
      )
      rem Вглубь
      call :RegEnumEx "%%k" "%~2"
    )
  )
Exit /B
Завтра постараюсь написать более быструю без рекурсии.
2
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 4
14.03.2014, 11:43  [ТС]
Спасибо!
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.03.2014, 23:25
Как и обещал:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
:RegEnum %1-key %2-parameter
  :: Поиск параметра в разделe %1 и всех его подразделах (совместимо с reg.exe ver.3,4,5)
  :: код возврата - кол-во ключей в словаре Return.
  set LastHKEY=& set return=0& set Total=0& set C=0& set HKEYs=0
  For /F "tokens=1* delims=[]" %%a in ('reg query "%~1" /s ^| find /i /n "%~1"') do set "HKEYs.%%a=%%b"& set "HKEYs=%%a"
  For /F "tokens=1* delims=[]" %%a in ('reg query "%~1" /s ^| find /i /n "%~2"') do set /a Total+=1& set "PARAMs.!Total!=%%a"
  if %Total%==0 goto RegEnum_Exit
  :Reg_Enum_Params
  set /a C+=1
  set "nHKEY=!PARAMs.%C%!"
  :Reg_Find_HKEY
  if not Defined HKEYS.%nHKEY% (set /a nHKEY-=1& goto Reg_Find_HKEY)
  set "currHKEY=!HKEYS.%nHKEY%!"
  if "%currHKEY%" neq "%LastHKEY%" (
    set "LastHKEY=%currHKEY%"
    reg query "%currHKEY%" /v "%~2" >NUL 2>&1 && (set /a return+=1& set "return.!return!=%currHKEY%")
  )
  if %C% LSS %Total% goto Reg_Enum_Params
  :RegEnum_Exit
  For /L %%C in (1,1,%HKEYs%) do set "HKEYs.%%C="
  For /L %%C in (1,1,%Total%) do set "PARAMs.%%C="
  set Total=& set C=& set HKEYs=& set LastHKEY=& set currHKEY=& set "nHKEY="
Exit /B %return%
2
 Аватар для semiono
161 / 18 / 0
Регистрация: 14.09.2010
Сообщений: 472
Записей в блоге: 6
28.05.2016, 17:44
Интересное решение нашёл, даже неожиданное, утилитой reg.exe
Сначала проверяется через query запись, а потом через двойной аперсенд делается запись. Всего одна строка!
Хотя возможно медленей работает, зато логика понятна даже для новичка)

Windows Batch file
1
(\\server1\NETLOGON\reg.exe QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\ /v "\\serv1c-old\database\") && (\\server1\NETLOGON\reg.exe DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\ /f /v "\\server1c-old\database\" && \\server1\NETLOGON\reg.exe ADD HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\ /v "\\server1c-new\database\" /t REG_SZ /d "MyDATA")
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.05.2016, 10:21
semiono, и в чём логика? reg add устанавливает значение для 1 параметра без рекурсии.
+ в Вашем коде лишняя операция - reg delete.
0
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 2
18.04.2022, 12:18
Добрый день. Выполняю скрипт
@echo off
SetLocal EnableExtensions

set root=HKEY_LOCAL_MACHINE\SYSTEM\CurrentCo ntrolSet\Enum\USB\
set param=IdleInWorkingState
set value=0

For /F "delims=" %%a in ('reg query "%root%" /f "%param%" /s ^| find /i "%root%"') do (
echo Found: %%a
reg add "%%a" /v "%param%" /t REG_DWORD /d %value% /f
)

pause
выдает ошибку "не удается найти указанный раздел или параметр в реестре"

Задача найти в данной ветке реестра все устройства USB с наличием энергосбережения и отключить его (замена 1 на 0)
Винда 10, на семерке тоже надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2022, 12:18
Помогаю со студенческими работами здесь

Значения строкового параметра в реестре
Windows XP Вот пример такого значения: Значений с подобным синтаксисом масса! Что означает число после запятой? Чем...

По расписанию выполнять поиск в реестре указанного параметра
Пожалуйста, помогите с заданием. По расписанию выполнять поиск в реестре указанного параметра («Driver») типа DWORD, дописать в файл все...

Поиск и удаление значения в реестре
Здравствуйте! Помогите в решении проблемы. Задача такова: требуется сценарий, который бы искал и удалял параметр из реестра. Неизвестно...

Поиск и замена с пропуском первой замены. Замена начиная со второго значения
Добрый день. Я прогнал mysql базу такой заменой. UPDATE post SET pagetext = CONCAT (substring(pagetext, 1,...

Парсинг файла и попарное чтение - параметра и его значения
Загружаю файл в string, строка в файле только одна, так что масив ненужен. В чем задача стоит? Содержимое файла такое: ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru