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

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

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

Пользователь


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

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


Здравствуйте.

Просьба помочь в написании скрипта по удалению служб по маске.
Например, есть список служб типа: service_1, service_2 и т.д.
Необходимо удалить все службы с именем service_*

Отправлено: 14:00, 03-12-2019

 

Ветеран


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

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


Цитата Busla:
а на самом деле просто потерян $ перед services
и этого бы не случилось, если бы не городили на пустом месте кучу переменных, а писали бы конвейером »
Да нет, это просто язык такой. Желание объять всё зараз вот к такому и приводит.

Отправлено: 12:28, 10-12-2019 | #21



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

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


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

fascinating rhythm


Moderator


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

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


Цитата Busla:
скрипты надо писать однозначно »
Для этого надо нормально формулировать задачу.
И неплохо бы иметь любознательность хотя бы чтобы попробовать понять, что делает элементарный скрипт в две строки, я уж не говорю о том, чтобы попробовать самому попробовать их написать.

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


Отправлено: 13:20, 10-12-2019 | #22


Пользователь


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

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


Цитата Busla:
$services = get-service service_*
foreach ($service in $services) {
write-verbose $service.name -Verbose
stop-service -InputObject $service
& sc.exe delete $service.name
} »
Получилось, спасибо!
А теперь это можно в некое подбие BAT-файла преобразовать, чтобы запуском в один клик вся эта процедура проделывалась? К сожалению с PowerShell не знаком совершенно...

Отправлено: 13:24, 10-12-2019 | #23


Ветеран


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

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


kirillius,
Попробуйте так:
Код: Выделить весь код
powershell.exe -Command { Stop-service service_* -PassThru | % { & sc.exe delete $_.name }  }
не проверял, т.к. лишних служб у меня нет :-)

Отправлено: 17:15, 10-12-2019 | #24


Пользователь


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

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


Цитата Busla:
Попробуйте так: »
Не сработало, выдало:

Код: Выделить весь код
"%" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Отправлено: 10:56, 13-12-2019 | #25


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

fascinating rhythm


Moderator


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

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


Busla, теперь ваша очередь демонстрации написания однозначных скриптов.

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


Отправлено: 10:59, 13-12-2019 | #26


Пользователь


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

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


Пока решил задачу так:

Код: Выделить весь код
$services = get-service service_*
foreach ($service in $services) {
write-verbose $service.name -Verbose
stop-service -InputObject $service
& sc.exe delete $service.name
}
- Это поместил в файл .ps1, а в BAT прописал:

Код: Выделить весь код
powershell "D:\Desktop\DelServices.ps1"

Отправлено: 13:17, 13-12-2019 | #27


Ветеран


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

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


kirillius, для bat удобнее будет использовать wmi:
Код: Выделить весь код
wmic.exe service where "name like 'service_%' and started = true" call stopservice
wmic.exe service where "name like 'service_%'" call delete

Отправлено: 15:24, 13-12-2019 | #28


Пользователь


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

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


Цитата Busla:
wmic.exe service where "name like 'service_%' and started = true" call stopservice
wmic.exe service where "name like 'service_%'" call delete »
А так не работает - No Instance(s) Available.

Отправлено: 15:51, 13-12-2019 | #29


Ветеран


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

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


Цитата kirillius:
А так не работает »
А так:
Цитата Busla:
Код: Выделить весь код
wmic.exe service where "name like 'service_%%' and started = true" call stopservice
wmic.exe service where "name like 'service_%%'" call delete
»
?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:54, 13-12-2019 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление каталогов по маске. mishgan2004 Скриптовые языки администрирования Windows 4 20-07-2017 14:00
CMD/BAT - Удаление по маске X.509 Скриптовые языки администрирования Windows 13 06-05-2014 00:24
CMD/BAT - Удаление файлов по маске IlyaBarkov Скриптовые языки администрирования Windows 6 15-10-2013 05:03
CMD/BAT - Удаление скрытых папок по маске chatlaninsan Скриптовые языки администрирования Windows 5 07-09-2009 17:22




 
Переход