Taskkill.exe: não lançar um erro se o processo não estiver em execução

29

Estou executando um evento de compilação post do Visual Studio que desliga o IIS se ainda estiver sendo executado após a compilação:

taskkill /f /im w3wp.exe

O seguinte funciona perfeitamente se o IIS ainda estiver em execução, mas gera um erro se já tiver parado:

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

Existe uma maneira de dizer ao taskkill para ignorar o problema se ele não encontrar um processo de execução correspondente?

    
por Luk 13.01.2011 / 14:25

6 respostas

29

Em vez de executar um comando, o trabalho de um pequeno arquivo em lotes seria executado?

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

A solução que encontrei para isso foi rodar

START taskkill /f /im w3wp.exe

Ele retorna um sucesso do comando START, e qualquer erro lançado pelo TASKKILL é lançado na nova janela do console

    
por 05.06.2012 / 19:04
11

Isso também funciona bem:

taskkill /IM "w3wp.exe" /F /FI "STATUS eq RUNNING"
    
por 13.05.2016 / 22:31
9

Ou, isso retornará uma mensagem informativa, caso não seja encontrada:

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

Informações de: aqui

    
por 12.08.2013 / 05:42
0

Esta é uma solução de uma linha .

Ele executará taskkill apenas se o processo estiver realmente em execução, caso contrário, será apenas uma informação de que ele não está sendo executado.

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

Esta é a saída caso o processo esteja em execução:

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

Esta é a saída no caso de não estar em execução:

process "w3wp.exe" not running.
    
por 27.06.2016 / 10:51
0

Força o processo a ser eliminado (se o processo estiver sendo executado) e não gera nenhuma informação.

O seguinte comando funciona bem.

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

    
por 10.05.2018 / 12:14