Определить запущен процесс или нет, если да то остановить и удалить.
Добрый день.
Определить запущен процесс или нет можно с помощью tasklist, дальше taskkill.
Но вот как в cmd просмотреть от куда запущен процесс, т.е. его путь и взять этот путь в качестве переменной вопрос.
Данные действия, хочется выполнять в cmd. Скажу еще что это служба ставится и доступна на удаление из "Программы и компоненты".
Подскажите.
Пример как определить:
Код:
tasklist /fi "IMAGENAME eq lightscreen.exe"
|
Код:
@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
|
Но он выводит путь+сам процесс. А как получить именно саму директорию?
|
Цитата:
Цитата voler
А как получить именно саму директорию? »
|
Исправить всего одну строку:
Код:
if defined sExecutablePath Echo !sExecutablePath:%sImageName%=!
|
Цитата:
Цитата Anonymоus
Исправить всего одну строку: »
|
Как потом передать полученные данные в переменную?
|
Код:
if defined sExecutablePath set sFolder=!sExecutablePath:%sImageName%=!
P.S. 2All: У данного подхода есть, конечно, подводный камень — если имя какой-то промежуточной папки совпадёт с именем образа, но практически сие маловероятное событие.
|
CyberMuesli |
21-04-2013 13:10 2136926 |
Цитата:
Цитата Iska
P.S. 2All: У данного подхода есть, конечно, подводный камень — если имя какой-то промежуточной папки совпадёт с именем образа, но практически сие маловероятное событие. »
|
for %%F in (%sExecutablePath%) do echo %%~dpF
|
Только кавычки ещё нужны.
Конечный примерный вид:
Код:
@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
|
Время: 11:33.
© OSzone.net 2001-