2010-05-22 9 views
23

J'ai donc un processus que j'ai commencé à partir d'un fichier bat. Comment l'arrêter d'un autre?Comment arrêter le processus du fichier .BAT?

+1

c'est ce que tu veux? – IVlad

+2

Copie possible de [n'importe quel moyen d'écrire un fichier Windows .bat pour tuer les processus?] (Http://stackoverflow.com/questions/33822/any-way-to-write-a-windows-bat-file-to- kill-processes) –

Répondre

34

Pour mettre fin à un processus que vous connaissez le nom, essayez:

taskkill /IM notepad.exe 

Cela lui demander de fermer, mais il peut refuser, offre de « enregistrer les modifications », etc. Si vous voulez tuer force , essayez:

taskkill /F /IM notepad.exe 
+0

Fonctionne comme un charme. En effet l'option sans/F demande au programme de bien se fermer. Le programme peut alors décider de ne pas fermer du tout. J'ai un programme qui minimise à une icône de la barre lorsque le bouton de fermeture est pressé et c'est exactement ce qui se passe. L'option/F le ferme de force. –

+0

'taskkill/F/IM notepad.exe' mieux dans la plupart des cas pour moi. 'taskkill/F/IM notepad.exe' me lance des erreurs de tâches qui n'ont pas de boîtes de dialogue de sauvegarde. Ils ne se ferment pas correctement et différentes choses peuvent se produire (le programme peut rester ouvert, même après la fermeture de la boîte de dialogue). Je ne voudrais pas qu'une erreur soit générée en arrière-plan, donc je recommande '/ F/IM' à moins que ce soit Word.exe ou quelque chose comme ça. –

1

Lorsque vous démarrez un processus à partir d'un fichier de commandes, il commence comme un processus distinct sans indication vers le fichier de commandes qui a commencé (car cela aurait fini en cours d'exécution dans l'intervalle, des choses comme l'ID du processus parent ne vous aidera pas).

Si vous connaissez le nom du processus et qu'il est unique parmi tous les processus en cours d'exécution, vous pouvez utiliser taskkill, comme le suggère @IVlad dans un commentaire.

Si ce n'est pas unique, vous pouvez vous intéresser aux tâches. Ceux-ci terminent tous les processus enfants engendrés lorsqu'ils sont terminés.

3

Comme TASKKILL pourrait être indisponible sur certaines éditions de Windows Home/base ici quelques alternatives:

TSKILL processName 

ou

TSKILL PID 

ont à l'esprit que processName ne devrait pas avoir le suffixe .exe et est limité à 18 caractères.

Une autre option est WMIC: vous pouvez filtrer

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

offre wmic encore plus de flexibilité que taskkill .Avec wmic Path win32_process get vous pouvez voir les fileds disponibles.

0

Pourquoi n'utilisez-vous pas PowerShell?

Stop-Process -Name notepad 

Et si vous êtes dans un fichier batch:

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

taskkill/F/IM notepad.exe c'est la meilleure façon de tuer la tâche du gestionnaire de tâches. `Taskkill -im exename.exe` terminera de force le processus.

Questions connexes