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

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

27.10.2012, 01:09. Показов 26450. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте, такая проблема есть 2 раздела HKLM\SYSTEM\0000 и HKLM\SYSTEM\0001 в них есть параметр "Param" который находиться либо в 0000 либо в 0001. задача, если "Param" в 0000 то занести в переменную в соответствующий путь "Pyt=HKLM\SYSTEM\0000", а если в 0001 то "Pyt=HKLM\SYSTEM\0001"
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2012, 01:09
Ответы с готовыми решениями:

Проверка наличия записи в реестре
Для автозапуска программы внёс в реестр: Dim Start As Microsoft.Win32.RegistryKey =...

Проверка наличия ключа в реестре
RegistryKey reg =...

Проверка наличия раздела в реестре
Доброго времени суток, подскажите, как реализовать проверку наличия раздела в реестре? Например:...

Проверка наличия ветки Java в реестре
Доброго времени суток. Каким образом можно определить наличие ветки в реестре (нужная ветка:...

28
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
27.10.2012, 01:19 2
Цитата Сообщение от zra123 Посмотреть сообщение
в переменную в соответствующий путь
т.е. занести "Pyt=HKLM\SYSTEM\0000"... в ключ реестра. Правильно?
0
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 10
27.10.2012, 01:24  [ТС] 3
Цитата Сообщение от Dragokas Посмотреть сообщение
т.е. занести "Pyt=HKLM\SYSTEM\0000"... в ключ реестра. Правильно?
Нет путь в %Pyt% чтоб подставить его дальше в коде
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
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
4 / 4 / 0
Регистрация: 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
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 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
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
26.01.2018, 21:14 10
Нет, не запускает.
0
0 / 0 / 0
Регистрация: 26.01.2018
Сообщений: 8
26.01.2018, 21:24 11
Мне нужно сделать чтоб запустил
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
26.01.2018, 21:46 12
Александр Марин, вам шашечки или ехать ?
Если нужен импорт файла реестра, то код выше.
Если нужно "окошечко", то вставьте regedit вместо reg import
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 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
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
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
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
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
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2018, 15:09
Помогаю со студенческими работами здесь

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

Проверка наличия в реестре Microsoft->Office->Access
Доброго дня уважаемые форумчане! Решила задать вопросик и в этой ветке. Суть дела: используя...

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

Проверка наличия записи
Здравствуйте, Есть две таблицы: Sclad: id 111 222 888


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru