2010-05-22 29 views
23

Así que tengo el proceso que comencé desde un archivo bat. ¿Cómo pararlo de otro?Cómo detener el proceso desde el archivo .BAT?

+1

'taskkill -im exename.exe' terminará forzosamente el proceso. ¿Es esto lo que quieres? – IVlad

+2

Posible duplicado de [Cualquier forma de escribir un archivo .bat de Windows para matar procesos?] (Http://stackoverflow.com/questions/33822/any-way-to-write-a-windows-bat-file-to- kill-processes) –

Respuesta

34

Para terminar un proceso que conoce el nombre de, tratar:

taskkill /IM notepad.exe 

Esto le pedirá que se cierre, pero puede negarse, oferta de "guardar cambios", etc. Si quieres matar a la fuerza que, Proveedores:

taskkill /F /IM notepad.exe 
+0

Funciona como un encanto. De hecho, la opción sin/F le pide al programa que cierre bien. El programa aún puede decidir no cerrar en absoluto. Tengo un programa que minimiza a un ícono de bandeja cuando se presiona el botón Cerrar y eso es exactamente lo que sucede. La opción/F lo abandona a la fuerza. –

+0

'taskkill/F/IM notepad.exe' mejor en la mayoría de los casos para mí. 'taskkill/F/IM notepad.exe' me arroja errores de tareas que no tienen cuadros de diálogo guardar. No se cierran correctamente y pueden suceder cosas diferentes (el programa puede permanecer abierto, incluso después de cerrar el diálogo). Tampoco me gustaría que se genere un error en segundo plano, por lo que recomiendo '/ F/IM' a menos que sea Word.exe o algo así. –

1

Cuando se inicia un proceso de un archivo por lotes, que comienza como un proceso independiente sin ninguna pista hacia el archivo por lotes que lo inició (ya que esto hubiera terminado de ejecutarse, mientras tanto, las cosas como el ID del proceso principal no lo ayudará).

Si conoce el nombre del proceso, y es único entre todos los procesos en ejecución, puede usar taskkill, como @IVlad sugiere en un comentario.

Si no es exclusivo, es posible que desee buscar trabajos. Estos terminan todos los procesos hijo engendrados cuando se terminan.

3

Como TASKKILL podría no estar disponible en algunas ediciones Inicio/básicas de ventanas aquí algunas alternativas:

TSKILL processName 

o

TSKILL PID 

tenemos en cuenta que processName no deberían tener el sufijo .exe y es limitada a 18 caracteres.

Otra opción es WMIC:

wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate 

oferta wmic aún más flexibilidad que taskkill .Con wmic Path win32_process get se puede ver los campos campos disponibles que puede filtrar.

0

¿Por qué no usa PowerShell?

Stop-Process -Name notepad 

Y si se encuentra en un archivo por lotes:

powershell -Command "Stop-Process -Name notepad" 
powershell -Command "Stop-Process -Id 4232" 
0

taskkill/F/IM notepad.exe esta es la mejor manera de matar la tarea desde el administrador de tareas.

Cuestiones relacionadas