Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выполнение команды в зависимости от записи в реестре

Ответить
Настройки темы
CMD/BAT - [решено] Выполнение команды в зависимости от записи в реестре

Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Например, запустить notepad только при наличии такой записи в реестре:
Код: Выделить весь код
[HKEY_CURRENT_USER\1]
@="one"
(только cmd/bat)

Отправлено: 11:43, 04-04-2021

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

(reg.exe query "HKEY_CURRENT_USER\1" /ve | find.exe /i "REG_SZ    one") && start "" "notepad.exe"

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:31, 04-04-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Блокнот не запустился...
(проверял на свежеустановленной "чистой" WinXP SP3 с упомянутой записью в реестре)

Отправлено: 13:08, 04-04-2021 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


dassen, формат вывода утилиты reg.exe может отличаться от версии к версии. Откройте cmd.exe. Выполните в нём:
Код: Выделить весь код
reg.exe query "HKEY_CURRENT_USER\1" /ve
Посмотрите на вывод утилиты. Затем выполните там же:
Код: Выделить весь код
>"Out.txt" reg.exe query "HKEY_CURRENT_USER\1" /ve
Откройте файл Out.txt из текущего каталога. Скопируйте потребную часть вывода утилиты из файла Out.txt в пакетный файл вместо «REG_SZ one». Сохраните пакетный файл и проверьте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:19, 04-04-2021 | #4


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


dassen, давайте точнее задачу и объемнее
просто намекая на возможный ход развития, но столкнувшись с ним в боевых условиях вы опять сюда придете.

Отправлено: 15:48, 04-04-2021 | #5


Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, спасибо!
Установил, что между REG_SZ и one должен быть знак табуляции:
Код: Выделить весь код
(reg query "HKEY_CURRENT_USER\1" /ve | find /i "REG_SZ	one") && start "" notepad
Если представленный код скопировать в батник, то все работает (версию reg.exe не менял).
А при копировании кода из Вашего первого сообщения между REG_SZ и one получил четыре пробела...
Скрытый текст
Использую AkelPad:
Настройки \ Параметры \ Редактор 1 \ Размер табуляции \ Пробелы (птичка снята).
Кодировка текста батника: 866 (OEM Russian)


alpap, Iska,
да, в принципе, задача уже решена.
О "боевых условиях":
нужно бы уточнить, что @="one", а не @="one1", @="oneday" и т.д (т.е. сейчас в реестре после one может быть любой текст, и notepad запустится).

Последний раз редактировалось dassen, 06-04-2021 в 22:11.


Отправлено: 16:06, 04-04-2021 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата dassen:
Установил, что между REG_SZ и one должен быть знак табуляции: »
Угу:
Цитата Iska:
dassen, формат вывода утилиты reg.exe может отличаться от версии к версии. »
Цитата dassen:
А при копировании кода из Вашего первого сообщения между REG_SZ и one получил четыре пробела... »
И это тоже правильно — в моей версии reg.exe там именно пробелы.

Цитата dassen:
О "боевых условиях":
нужно бы уточнить, что @="one", а не @="one1", @="oneday" и т.д (сейчас в реестре после one может быть любой текст, и notepad запустится). »
Это сильно существенно?
Код: Выделить весь код
… | findstr.exe /i /r /e /c:".*REG_SZ	one" …
(не проверялось).
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:29, 05-04-2021 | #7


Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, понятно, спасибо!
Именно то, что я и хотел получить:
Код: Выделить весь код
(reg query "HKCU\1" /ve | findstr /i /r /e /c:".*REG_SZ	one") && start "" notepad

Последний раз редактировалось dassen, 06-04-2021 в 22:10.


Отправлено: 01:17, 05-04-2021 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выполнение команды в зависимости от записи в реестре

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Выполнение команд в бат в зависимости от времени запуска Sergey.l Скриптовые языки администрирования Windows 8 06-02-2018 00:15
VBS/WSH/JS - Выполение скрипта в зависимости от условия наличия значений в реестре smol84 Скриптовые языки администрирования Windows 0 07-12-2012 19:07
CMD/BAT - [решено] удаленное выполнение команды Diver1 Скриптовые языки администрирования Windows 2 20-03-2009 10:39
Переименование %homepath% в зависимости от имени учетной записи amped Microsoft Windows 2000/XP 6 26-04-2007 15:47
В реестре запретить выполнение программы mahno Microsoft Windows 95/98/Me (архив) 5 10-03-2003 19:22




 
Переход