web-dev-qa-db-fra.com

espaces de la fenêtre de tâche dans le titre

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"
22
DarVar

J'ai eu des problèmes similaires, mais en ai découvert un peu plus.

Problème

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

Solution

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
38
c24w

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
1
Emre Karataşoğlu

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
0
Pedro Lobito

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.

0
dbeasy

taskkill/F/FI "WindowTitle eq Apache 8184" 

0
Gank

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
0
Shoresh