Como parar um processo bat no Windows?

8

Eu tenho o arquivo BAT sendo executado em segundo plano no Windows, que dura cerca de dez minutos. Agora, quero pará-lo enquanto ele está em execução, mas não consigo encontrar seu nome na lista de processos do gerenciador de tarefas. Então, como posso abordar isso? Obrigado!

UPDATE1

Parece difícil parar um processo BAT em execução no backgroud. E eu decido tentar matar todos os processos envolvidos pelo arquivo BAT pelo nome, o que pode ser um exagero. É aceitável para mim já que a maioria dos processos no meu arquivo BAT não são usado com freqüência, como ping, tracert, netstat etc. Se você tiver alguma solução melhor, por favor me avise. Obrigado.

UPDATE2

Árvore de processos BAT

    
por SpawnST 08.11.2010 / 07:49

7 respostas

10

Os processos geralmente são lançados em uma árvore como a moda, eu aconselho o lançamento de Microsoft / Sysinternals Process Explorer , Comece clicando na opção Show Process Tree (1), então encontre seu processo e clique com o botão direito do mouse e escolha Kill Process Tree (2) Isso deve matar o arquivo original e tudo o que foi lançado.

    
por 17.11.2010 / 08:44
5

Você pode modificar o arquivo em lote para que ele use um arquivo de bloqueio para continuar operando, inserindo verificações entre os comandos para a existência do arquivo. Para impedir que o arquivo em lote seja executado, basta excluir o arquivo de bloqueio.

Aqui está um arquivo de lote de demonstração:

echo xx > "c:\temp\lockfile"
pause
if not exist "c:\temp\lockfile" goto  exit
pause
del "c:\temp\lockfile"
:exit

Para eliminar com violência os processos que podem estar em execução no momento, você pode criar um arquivo em lote 'kill' que conterá taskkill comandos para todas as tarefas possivelmente iniciadas a partir do arquivo de lote:

del "c:\temp\lockfile"
taskkill /im mytask1.exe
taskkill /im mytask2.exe
    
por 17.11.2010 / 10:15
1

Um BAT normalmente inicia uma instância do CMD.exe. Dependendo do que o seu script faz, também iniciará outros processos.

    
por 08.11.2010 / 08:16
1

Eu escrevi um aplicativo que pode ajudá-lo, pelo menos se o BAT estiver sendo executado em uma janela do CMD. Você pode ver as janelas do aplicativo que estão em execução e obter o PID do aplicativo, você pode matá-lo com o meu aplicativo, você também pode ver todos os processos que ele gerou e matá-los também. É um programa bem simples, mas eficaz para esse tipo de coisa. Você também pode usá-lo para rastrear exatamente onde no seu HD o arquivo BAT está sendo executado, caso você não saiba disso.

    
por 08.11.2010 / 08:24
1

Como o arquivo em lote é chamado?
Se for do Agendador de Tarefas, você também poderá pará-lo de lá. Se é de um serviço, então você pode parar o serviço.

    
por 08.11.2010 / 09:30
1

Encontrou este tópico no fórum de mensagens:

link

Ele sugere o uso de ShellExecuteEx (ou CreateProcess) para que você possa obter um identificador de processo, que pode ser usado para eliminar o processo.

    
por 17.11.2010 / 15:20
0

Se você tiver aberto no prompt de comando, você pode pressionar Ctrl + C . Aguarde alguns segundos e será encerrado.

    
por 27.12.2013 / 12:33