Taskkill.exe : 프로세스가 실행되고 있지 않은 경우 오류를 발생시키지 않습니다


33

컴파일 후에도 IIS가 여전히 실행 중이면 IIS를 종료하는 Visual Studio 빌드 후 이벤트를 실행하고 있습니다.

taskkill /f /im w3wp.exe

IIS가 여전히 실행중인 경우 다음이 완벽하게 작동하지만 이미 중지 된 경우 오류가 발생합니다.

Error 1 The process "w3wp.exe" not found. xxx\EXEC

일치하는 실행중인 프로세스를 찾을 수없는 경우 taskkill에 문제를 무시하도록 지시하는 방법이 있습니까?

답변:


29

하나의 명령을 실행하는 대신 작은 배치 파일을 실행하면 작동합니까?

tasklist /FI "IMAGENAME eq w3wp.exe" 2>NUL | find /I /N "w3wp.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /f /im w3wp.exe

22

내가 찾은 해결책은 실행하는 것이 었습니다.

START /wait taskkill /f /im w3wp.exe

START 명령에서 성공을 리턴하고 새 콘솔 창에서 TASKKILL에 의해 발생 된 오류가 발생합니다.


5
배치 파일을 계속하기 전에 작업이 종료 될 때까지 대기하려는 경우 단순히 추가 :START /wait taskkill /f /im w3wp.exe
jezternz

1
기다림은 매우 중요한 세부 사항입니다. 혼란을 피하기 위해 원래 답변으로 편집 할 것입니다. 감사합니다 @jezternz!
Dustin Gamester

15

이것은 잘 작동합니다 :

taskkill /IM "w3wp.exe" /F /FI "STATUS eq RUNNING"

이 작업을 수행 할 수 없습니다. 내 버전의 taskkill이 "STATUS eq RUNNING"을 인식하지 못하는 것 같습니다. 그러나 "MEMUSAGE gt 2"는 작동합니다.
Polyfun

나는 (당신이 그들을 원하지 않는하지만 어느 쪽이든)이 "상태 EQ의 UNKNOWN는"또는 붙어하지 않을 수 있습니다 프로세스를 잡기위한 더 나은 옵션이었다 발견
앤디 Krouwel

10

또는 정보가 없으면 정보 메시지를 반환합니다.

taskkill /f /im w3wp.exe /fi "memusage gt 2"

정보 : here


3

이것은 한 줄 솔루션 입니다.

프로세스가 실제로 실행중인 경우에만 taskkill을 실행하고 그렇지 않으면 실행 중이 아니라는 정보 만 표시합니다.

tasklist | find /i "w3wp.exe" && taskkill /im w3wp.exe /F || echo process "w3wp.exe" not running.

프로세스가 실행중인 경우의 출력입니다.

w3wp.exe           1960 Services                   0    112,260 K
SUCCESS: The process "w3wp.exe" with PID 1960 has been terminated.

이것은 실행 중이 아닌 경우의 출력입니다.

process "w3wp.exe" not running.

0

프로세스를 강제 종료하고 (프로세스가 실행중인 경우) 정보를 출력하지 않습니다.

다음 명령은 정상적으로 작동합니다.

taskkill /f /im w3wp.exe /t /fi "status eq running">nul


이것이 w3wp.exe를 어떻게 죽일까요?
Jason Aller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.