J'essaie d'exécuter taskkill sur une fenêtre de console dont le titre contient des espaces. Comment puis-je transmettre ce titre de fenêtre à taskkill. J'ai essayé les solutions suivantes:
taskkill /fi "WINDOWTITLE eq Administrator: My Window Title"
J'ai eu des problèmes similaires, mais en ai découvert un peu plus.
J'ai essayé de fermer une fenêtre CMD (exécutée en tant qu'administrateur) qui a défini son propre titre de fenêtre. Donc, lancez CMD en tant qu’administrateur et tapez:
title CMD with custom title
Après beaucoup de choses, la commande suivante m'a montré que définir le titre de la fenêtre met un espace devant le titre! (Aucune idée pourquoi.)
c:\>tasklist /V /FI "WindowTitle eq Administrator*"
Image Name PID Session Name Session# Mem Usage Status User Name CPU Time Window Title
========== ==== ============ ======== ========= ======= =============== ======== =====================================
cmd.exe 4304 Console 1 2,492 K Running MACHINE\My Name 0:00:00 Administrator: CMD with custom title
????
(scroll ????) extra space
Donc, pour tuer le processus:
taskkill /F /FI "WindowTitle eq Administrator: CMD with custom title" /T
????
bingo
/F
- utilisez la force./T
- tuer les processus enfants.Si vous vous cognez la tête de la même manière, je vous recommande d'utiliser tasklist
pour explorer les propriétés du processus afin de vous assurer que vos filtres sont corrects. Ce balache présenté par Windows 8.
Remarque: si le titre contient des guillemets, échappez-les simplement des guillemets:
title "CMD with custom title"
taskkill /F /FI "WindowTitle eq Administrator: \"CMD with custom title\"" /T
Je suppose que cette tâche est exécutée sur votre serveur Windows. Si le titre comprend "Administrateur:", vous ne pouvez pas tuer la tâche via WindowTitle égal.
Vous devriez utiliser ceci: Ceci est mon tueur.bat. SEARCH_PARAMETER = QUEL EST LE TITRE VOUS WANNA KILL
@echo off
for /f "tokens=2 delims=," %%a in ('
tasklist /fi "imagename eq cmd.exe" /v /fo:csv /nh
^| findstr /r /c:".*SEARCH_PARAMETER[^,]*$" ') do taskkill /pid %%a
Réponse tardive (4ans), mais un bon moyen de tuer un processus lorsque vous ne connaissez qu'une partie du nom du processus consiste à utiliser le old WMIC
.
Voici un exemple pour find
et kill
un processus nommé "Administrator: My Window Title"
:
WMIC PROCESS WHERE "NAME LIKE '%Administrator: My Window Title%'" CALL TERMINATE
Je commençais à utiliser les fenêtres de commande avec Shell, c.-à-d. À l'aide de AutoIt. J'ai déjà essayé les doubles espaces mais la commande Run () d'AutoIt a créé le shell cmd.exe de manière à ce que tasklist/taskkill ne puisse pas voir le titre de la fenêtre.
Si j'ai utilisé une boucle ou WinKill ()/WinClose () d'AutoIt avec le titre de la fenêtre pour l'invite cmd, AutoIt lui-même pourrait fermer la fenêtre, mais mes fichiers de commandes d'invite cmd ne voyaient que c:\windows\system32\cmd.
Dans ce cas, j'ai pu utiliser AutoIt pour tuer la fenêtre au lieu d'un script batch.
taskkill/F/FI "WindowTitle eq Apache 8184"
L'astuce consiste à nommer le processus cmd, puis à le tuer en appelant le nom que vous avez donné: Voici le début de 6 processus parallèles et vous pouvez tuer n'importe lequel des choix.
start "cmd001" cmd.exe
start "cmd002" cmd.exe
start "cmd003" cmd.exe
start "cmd004" cmd.exe
start "cmd005" cmd.exe
start "cmd 006" cmd.exe
:: tuez le processus que vous voulez, par exemple cmd005
taskkill /F /FI "WINDOWTITLE eq cmd005" /T
:: tuer un processus qui a un espace dans son nom, par exemple cmd 006
taskkill /F /FI "WINDOWTITLE eq cmd 006" /T