Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
zra123
4 / 4 / 1
Регистрация: 27.10.2012
Сообщений: 10
#1

Проверка наличия записи в реестре - CMD/BAT

27.10.2012, 01:09. Просмотров 6451. Ответов 20
Метки нет (Все метки)

здравствуйте, такая проблема есть 2 раздела HKLM\SYSTEM\0000 и HKLM\SYSTEM\0001 в них есть параметр "Param" который находиться либо в 0000 либо в 0001. задача, если "Param" в 0000 то занести в переменную в соответствующий путь "Pyt=HKLM\SYSTEM\0000", а если в 0001 то "Pyt=HKLM\SYSTEM\0001"
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 01:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверка наличия записи в реестре (CMD/BAT):

Проверка наличия диска
Подключаю в батнике сетевой диск net use x: \\VasyaServer\Share...

Проверка наличия файлов
Помогите пожалуйста. Мне надо проверить названия файлов и записать в файл...

Проверка наличия интернета
Привет всем! Столкнулся с проблемой проверки наличия подключения интернета...

Проверка наличия папок
Здравствуйте уважаемые господа возникла такая проблема нужно сделать проверку...

Проверка наличия файлов
Помогите написать код!) Вот задание: Проверка наличия на диске в каталоге,...

Изменение записи в реестре
Хочу заменить через командную строку(запускаю с правами администратора)...

20
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 852
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
27.10.2012, 01:19 #2
Цитата Сообщение от zra123 Посмотреть сообщение
в переменную в соответствующий путь
т.е. занести "Pyt=HKLM\SYSTEM\0000"... в ключ реестра. Правильно?
0
zra123
4 / 4 / 1
Регистрация: 27.10.2012
Сообщений: 10
27.10.2012, 01:24  [ТС] #3
Цитата Сообщение от Dragokas Посмотреть сообщение
т.е. занести "Pyt=HKLM\SYSTEM\0000"... в ключ реестра. Правильно?
Нет путь в %Pyt% чтоб подставить его дальше в коде
0
Charles Kludge
Клюг
7641 / 3156 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
27.10.2012, 01:42 #4
Лучший ответ Сообщение было отмечено Joey как решение

Решение

zra123, здесь есть примеры: http://www.robvanderwoude.com/ntregistry.php

Кстати, Dragokas, маленький хинт, как батник может самого себя спрятать в регистри: Self-contained registry scripts
3
Dragokas
27.10.2012, 01:49
  #5

Не по теме:

Клас :good:
Тоже в копилку. Аналогично с твоей темой. Кстати отпишись в ней - как получилось откомпилить вариант с ;
а то я никак не проверю.

1
zra123
4 / 4 / 1
Регистрация: 27.10.2012
Сообщений: 10
27.10.2012, 12:41  [ТС] #6
Цитата Сообщение от Charles Kludge Посмотреть сообщение
zra123, здесь есть примеры: http://www.robvanderwoude.com/ntregistry.php

Кстати, Dragokas, маленький хинт, как батник может самого себя спрятать в регистри: Self-contained registry scripts
спасибо, разобрался. все оказалось очень просто.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
:REG0
REG QUERY "HKLM\SYSTEM\0000" /v "Param"
if %ERRORLEVEL% EQU 1 goto REG1
if %ERRORLEVEL% EQU 0 goto PR
:REG1
REG QUERY "HKLM\SYSTEM\0001" /v "Param"
if %ERRORLEVEL% EQU 1 goto ERROR
if %ERRORLEVEL% EQU 0 goto PR
:ERROR
echo Error!
pause
:PR
....
exit
0
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
26.01.2018, 20:40 #7
Добрый вечер
Чтоб не плодить новые темы спрошу тут

Необходимо проверить реестр на наличие в нем ветки, например "HKEY_CURRENT_USER\Software\Моя ветка"

Если она есть ничего ен делаем
Если ее нет то запускаем "Данные реестра.reg" и создаем ветку с параметрами
//************************************
Bash
1
2
3
4
@echo off 
/// тут проверка
 
regedit /s Данные реестра.reg
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 852
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
26.01.2018, 21:03 #8
Для HKCU так:

Windows Batch file
1
reg query "HKCU\Software\Моя ветка" || reg import "файл экспорта.reg"
0
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
26.01.2018, 21:13 #9
Данный код не запускает "файл экспорта.reg"
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 852
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
26.01.2018, 21:14 #10
Нет, не запускает.
0
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
26.01.2018, 21:24 #11
Мне нужно сделать чтоб запустил
0
vavun
9901 / 5189 / 788
Регистрация: 07.04.2013
Сообщений: 15,139
26.01.2018, 21:46 #12
Александр Марин, вам шашечки или ехать ?
Если нужен импорт файла реестра, то код выше.
Если нужно "окошечко", то вставьте regedit вместо reg import
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 852
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
26.01.2018, 21:55 #13
Александр Марин, для куста HKCU это не обязательно.
Но если нужны более высокие права, тогда используйте ваш вариант.
0
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
27.01.2018, 11:30 #14
Проблема в том что при выполнении данного кода
Bash
1
reg query "HKCU\Software\Моя ветка" || regedit /s "файл экспорта.reg"
у меня вообще ничего не происходит не зависимо есть ли данная ветка в реестре или нет
если делаю просто без проверки
Bash
1
regedit /s "файл экспорта.reg"
то все работает, а мне нужно сделать првоерку
0
vavun
9901 / 5189 / 788
Регистрация: 07.04.2013
Сообщений: 15,139
27.01.2018, 11:42 #15
попробуйте так
Windows Batch file
1
2
3
4
@echo off
setlocal enableextensions enabledelayedexpansion
reg query "HKCU\Software\Моя ветка" >nul
if not "!errorlevel!"=="0" (regedit /s "файл экспорта.reg")
1
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
27.01.2018, 13:18 #16
Спасибо.
Ваш код работает как нужно.

Добавлено через 1 час 9 минут
Подскажите еще один момент.
Мы выполнили код
Windows Batch file
1
2
3
4
@echo off
setlocal enableextensions enabledelayedexpansion
reg query "HKCU\Software\Моя ветка" >nul
if not "!errorlevel!"=="0" (regedit /s "файл экспорта.reg")

/////////////////

у нас есть данная ветка HKCU\Software\Моя ветка файл экспорта.reg не выполняем

Нам нужно проверить наличие строкового параметра "Строковый параметр" и если его нет то создать его
0
vavun
9901 / 5189 / 788
Регистрация: 07.04.2013
Сообщений: 15,139
27.01.2018, 13:38 #17
Наличие параметра Foo
Windows Batch file
reg query "HKCU\Software\Моя ветка" /v "Foo"
Проверка параметра Foo на наличие значения value
Windows Batch file
reg query "HKCU\Software\Моя ветка" /v "Foo" | findstr /i "value"
0
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
27.01.2018, 14:32 #18
Windows Batch file
1
2
3
4
@echo off
setlocal enableextensions enabledelayedexpansion
reg query "HKCU\Software\Моя ветка" /v "Primer" >nul
if not "!errorlevel!"=="0" (reg add "HKCU\Software\Моя ветка" /v Primer /t REG_SZ /d 0)
Запись добавляется в любом случае, не зависимо есть она уже там или нет
0
vavun
9901 / 5189 / 788
Регистрация: 07.04.2013
Сообщений: 15,139
27.01.2018, 14:53 #19
Цитата Сообщение от Александр Марин Посмотреть сообщение
Запись добавляется в любом случае, не зависимо есть она уже там или нет
Если параметр Primer есть в указанной ветке, то ничего не добавляется.
Скрипт работает ровно так, как должен.
0
Александр Марин
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
27.01.2018, 15:09 #20
У меня при наличии парfметра Primer вылазит диалоговое окно и спрашивает желаю ли я перезаписать заново этот парметр
0
Миниатюры
Проверка наличия записи в реестре  
27.01.2018, 15:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2018, 15:09
Привет! Вот еще темы с решениями:

Проверка наличия файла с переодичностью
Доброго времени суток форумчане, вроде все очевидно, но не работает следующий...

Проверка наличия файлов в папке
Собственно раньше использовался такой кусок кода: dir "%filesDIR%\*.pc*" /a-D...

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

Проверка наличия файла на диске
Всем привет Ребят , у меня батник , который ищет указанный файл на диске, и...


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

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

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