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

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

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

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


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

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


Здравствуйте, помогите написать скрипт для поиска разделов в реестре по части имени и их удаления
Необходимо в указанных ветках
Код: Выделить весь код
HKLM\Software\Microsoft\SecurityManager\CapAuthz\ApplicationsEx
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications
найти разделы реестра (их может быть несколько), начинающиеся с
Код: Выделить весь код
MicrosoftWindows.Client.CBS_дальшеидутрандомныесимволы
и удалить их.

Отправлено: 11:53, 09-10-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell
Код: Выделить весь код
dir "registry::HKLM\SOFTWARE\Microsoft\SecurityManager\CapAuthz\ApplicationsEx","registry::HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications" |
? name -match 'MicrosoftWindows.Client.CBS' |del

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 14:57, 09-10-2021 | #2



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

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


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


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

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


Друзья, пожалуйста, на Cmd или подскажите как это прилепить к bat
Нужно понимать, удалился ли раздел или нет.

Последний раз редактировалось VladoSer, 09-10-2021 в 17:02.


Отправлено: 16:05, 09-10-2021 | #3


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls
	Call :DelReg "HKLM\Software\Microsoft\SecurityManager\CapAuthz\ApplicationsEx" "MicrosoftWindows.Client.CBS_*"
	Call :DelReg "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications" "MicrosoftWindows.Client.CBS_*"
Pause
Exit /B

:DelReg
	For /F "usebackq delims=" %%r In (`2^>nul REG QUERY %~1 /f %2 /k`) Do (
		Echo %%r
		Echo %%r| >nul 2>&1 Find /I "\" &&Reg Delete "%%r" /f
	)
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 09-10-2021 в 19:20.

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

Отправлено: 18:03, 09-10-2021 | #4


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


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

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


Цитата megaloman:
Код: Код
А если веток больше, ничего в коде не меняется? Просто добавить строчку
Код: Выделить весь код
Call :DelReg "своя ветка" "MicrosoftWindows.Client.CBS_*"
?
И чтобы выключить отображение разделов, необходимо убрать?
Код: Выделить весь код
Echo %%r
p.s, откуда мне убрать
Код: Выделить весь код
exit /b
, мне необоходимо это добавить в середину кода, а после поиска и удаления закрывается cmd, а нужно, что бы батник продолжал свою работу.

Последний раз редактировалось VladoSer, 09-10-2021 в 20:00.


Отправлено: 19:43, 09-10-2021 | #5


Ветеран


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

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


VladoSer, либо Вы осваиваете пакетные файлы и разбираетесь самостоятельно, либо зараз озвучиваете все хотелки и условия.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:31, 09-10-2021 | #6


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


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

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


Цитата Iska:
либо зараз озвучиваете все хотелки и условия »
Здравствуйте. А разве наводящие вопросы по коду не являются показателем того, что я пытаюсь разобраться?
Я убирал exit /b в двух разных местах, и пытался сам разобраться, но у меня все равно не получается сделать так, чтобы код выполнялся в середине .bat файла. Поверьте, я не задавал бы вопроса, если бы знал как это делается, дергая просто так человека, но я новичок, и поэтому я спросил совета у старшего по цеху.
Очень здорово, что Вы научились, разобрались и умеете писать пакетные файлы, я же пока в процессе.

Отправлено: 20:41, 09-10-2021 | #7


Ветеран


Contributor


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

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


Если веток больше, ничего в коде не меняется, просто добавить строчку
Call :DelReg "своя ветка" "нужная маска раздела"
Чтобы выключить отображение разделов
Код: Выделить весь код
:DelReg
	For /F "usebackq delims=" %%r In (`2^>nul REG QUERY %~1 /f %2 /k`) Do (
		Echo %%r| >nul 2>&1 Find /I "\" &&(>nul Reg Delete "%%r" /f ||Echo %%r)
	)
Exit /B
При этом если Нужно понимать, удалился ли раздел или нет, если раздел не удалился, сообщение получите.
Структура кода:

Код: Выделить весь код
@Echo Off
..........................       Ваш код
..........................
Где-то внутри 	Call :DelReg ........................ сколько угодно штук
..........................       Ваш код
..........................
Где-то внутри  возможно еще сколько угодно раз	Call :DelReg ........................ сколько угодно штук
..........................       Ваш код
..........................
Exit /B

:Sub1
        Код вашей процедуры 1 если она нужна
Exit /b

:Sub2
        Код вашей процедуры 2 если она нужна
Exit /b

и т д куча ваших процедур если нужно

:DelReg
	For /F "usebackq delims=" %%r In (`2^>nul REG QUERY %~1 /f %2 /k`) Do (
		Echo %%r
		Echo %%r| >nul 2>&1 Find /I "\" &&Reg Delete "%%r" /f
	)
Exit /B
Порядок следования процедур не имеет значения

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 09-10-2021 в 21:07.

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

Отправлено: 21:01, 09-10-2021 | #8


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


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

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


Цитата megaloman:
Чтобы выключить отображение разделов »
Спасибо Вам, Вы уже выручаете не раз, буду разбираться и учиться.
Извините за беспокойство и большое кол-во вопросов.

Отправлено: 21:13, 09-10-2021 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Раскладка файлов по части имени Dyaus Скриптовые языки администрирования Windows 9 04-09-2020 16:28
CMD/BAT - скрипт сравнение файлов и копирования по части имени mallonih Скриптовые языки администрирования Windows 7 23-01-2020 09:21
CMD/BAT - Поиск и сортировка файлов по части названия registeruser1 Скриптовые языки администрирования Windows 4 04-05-2017 09:21
VBS/WSH/JS - [решено] Найти файл по части имени bombording Скриптовые языки администрирования Windows 1 04-04-2014 10:52
CMD/BAT - [решено] Сравнение файлов по части имени sampir Скриптовые языки администрирования Windows 2 18-11-2012 19:57




 
Переход