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

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

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

Аватара для voler

Ветеран


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

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


Изменения
Автор: voler
Дата: 16-04-2013
Добрый день.

Определить запущен процесс или нет можно с помощью tasklist, дальше taskkill.
Но вот как в cmd просмотреть от куда запущен процесс, т.е. его путь и взять этот путь в качестве переменной вопрос.
Данные действия, хочется выполнять в cmd. Скажу еще что это служба ставится и доступна на удаление из "Программы и компоненты".


Подскажите.
Пример как определить:
Код: Выделить весь код
tasklist /fi "IMAGENAME eq lightscreen.exe"

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 15:51, 16-04-2013

 

Ветеран


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

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


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

set sImageName=notepad.exe

for /f "usebackq delims=" %%i in (
	`wmic.exe Process where "Name='%sImageName%'" get ExecutablePath /value ^| find.exe "ExecutablePath"`
) do set "s%%i"

if defined sExecutablePath echo [%sExecutablePath%]

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

Отправлено: 17:52, 16-04-2013 | #2



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

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


Аватара для voler

Ветеран


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

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


Но он выводит путь+сам процесс. А как получить именно саму директорию?

-------
Linux, это плацдарм для изучения своих возможностей.


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


Старожил


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

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


Цитата voler:
А как получить именно саму директорию? »
Исправить всего одну строку:
Код: Выделить весь код
if defined sExecutablePath Echo !sExecutablePath:%sImageName%=!

Отправлено: 09:29, 17-04-2013 | #4


Аватара для voler

Ветеран


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

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


Цитата Anonymоus:
Исправить всего одну строку: »
Как потом передать полученные данные в переменную?

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 09:45, 17-04-2013 | #5


Ветеран


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

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


Код: Выделить весь код
if defined sExecutablePath set sFolder=!sExecutablePath:%sImageName%=!
P.S. 2All: У данного подхода есть, конечно, подводный камень — если имя какой-то промежуточной папки совпадёт с именем образа, но практически сие маловероятное событие.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:06, 17-04-2013 | #6


Аватара для CyberMuesli

Старожил


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

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


Цитата Iska:
P.S. 2All: У данного подхода есть, конечно, подводный камень — если имя какой-то промежуточной папки совпадёт с именем образа, но практически сие маловероятное событие. »
for %%F in (%sExecutablePath%) do echo %%~dpF

-------
Кибер Мюсли

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

Отправлено: 13:10, 21-04-2013 | #7


Ветеран


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

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


Только кавычки ещё нужны.

Конечный примерный вид:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sImageName=notepad.exe

for /f "usebackq delims=" %%i in (
	`wmic.exe Process where "Name='%sImageName%'" get ExecutablePath /value ^| find.exe "ExecutablePath"`
) do set "s%%i"

if defined sExecutablePath for %%i in ("%sExecutablePath%") do set sFolder=%%~dpi
echo [%sFolder%]

endlocal
exit /b 0

Отправлено: 23:42, 21-04-2013 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Теория - [решено] Определить открыт ли файл, и если да то каким процессом... RUVATA Программирование и базы данных 8 10-02-2011 05:35
.NET - Как определить что файл уже открыт, и если да, то кем? RUVATA Программирование и базы данных 0 14-01-2011 11:10
Прочее - Возможно ли так сделать. Если да, то как? zif Сетевые технологии 1 15-11-2010 10:27
Интерфейс - Возможно ли два пуска на двух мониторах, если да, то как? nzhs Microsoft Windows 2000/XP 1 31-10-2010 10:00
Теория - Как определить запущен ли процесс? Gmix Программирование и базы данных 3 30-06-2004 15:14




 
Переход