Trouver Nom du Processus par son IDENTIFIANT de Processus
Supposons que je connais l'ID de processus. Je veux trouver le nom du processus par son ID, à l'aide de windows script de commandes. Comment puis-je faire cela?
La base, poser des tasklist de filtre de sa sortie et afficher uniquement l'indication de l'id du processus d'information
tasklist /fi "pid eq 4444"
À seulement obtenir le nom du processus, la ligne doit être découpée
for /f "delims=," %%a in ('
tasklist /fi "pid eq 4444" /nh /fo:csv
') do echo %%~a
Dans ce cas, la liste des processus est extrait sans les en-têtes (/nh) au format csv (/fo:csv). Les virgules sont utilisés comme délimiteurs de jetons et le premier jeton dans la ligne est le nom de l'image
note: Dans certaines versions de windows (l'un d'eux, mon cas, c'est l'espagnol version de windows xp), le pid du filtre dans la liste des tâches ne fonctionne pas. Dans ce cas, le filtre sur la liste des processus doit être effectué hors de la commande
for /f "delims=," %%a in ('
tasklist /fo:csv /nh ^| findstr /b /r /c:"[^,]*,\"4444\","
') do echo %%~a
Cela va générer la liste des tâches et le filtre de recherche pour l'id de processus dans la deuxième colonne de la sortie csv.
édité: alternativement, vous pouvez suppose que ce qui a été fait par l'équipe qui s'est traduit par le système d'exploitation à l'espagnol. Je ne sais pas ce qui peut arriver dans d'autres localités.
tasklist /fi "idp eq 4444"
Est-il possible d'obtenir tous les processus et les PIDs seul??? Nous pouvons le faire sous linux, mais ce n'est pas sûr de commandes ms-dos. S'il vous plaît aider.
En utilisant uniquement des "indigènes" utilitaires de Windows, essayez la commande suivante, où "516" est l'ID de processus que vous souhaitez que le nom de l'image pour:
Si l'ID de processus est à moins de 1000, le find commande peut récupérer le faux de lignes de mise en correspondance des données dans la mémoire de la colonne dans le cas de tasklist, ou (inférieur ou supérieur à 1000) dans l'une des colonnes numériques dans le wmic ou pslist colonnes numériques.
L'ajout d'un étalement de l'espace ne permet pas de résoudre le problème (ex: 1.500 dans la mémoire de la colonne). Dans la liste des tâches, vous pouvez filtrer la sortie (/fi), dans wmic vous pouvez filtrer la sortie (where clause), dans pslist vous pouvez filtrer la sortie (donner le pid en ligne de commande). Alors que grep est un excellent outil, il n'est pas nécessaire de l'utiliser ici
Bon, bon appel. Me faire travailler pour elle... 😉
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET /a pid=1600
FOR /f "skip=3delims="%%a IN ('tasklist') DO (
SET "found=%%a"
SET /a foundpid=!found:~26,8!
IF %pid%==!foundpid! echo found %pid%=!found:~0,24%!)
GOTO :EOF
La base, poser des tasklist de filtre de sa sortie et afficher uniquement l'indication de l'id du processus d'information
À seulement obtenir le nom du processus, la ligne doit être découpée
Dans ce cas, la liste des processus est extrait sans les en-têtes (
/nh
) au format csv (/fo:csv
). Les virgules sont utilisés comme délimiteurs de jetons et le premier jeton dans la ligne est le nom de l'imagenote: Dans certaines versions de windows (l'un d'eux, mon cas, c'est l'espagnol version de windows xp), le pid du filtre dans la liste des tâches ne fonctionne pas. Dans ce cas, le filtre sur la liste des processus doit être effectué hors de la commande
Cela va générer la liste des tâches et le filtre de recherche pour l'id de processus dans la deuxième colonne de la sortie csv.
édité: alternativement, vous pouvez suppose que ce qui a été fait par l'équipe qui s'est traduit par le système d'exploitation à l'espagnol. Je ne sais pas ce qui peut arriver dans d'autres localités.
En utilisant uniquement des "indigènes" utilitaires de Windows, essayez la commande suivante, où "516" est l'ID de processus que vous souhaitez que le nom de l'image pour:
Ou vous pouvez utiliser wmic (Windows Management Instrumentation outil de ligne de Commande) et d'obtenir le chemin complet de l'exécutable:
Ou vous pouvez télécharger Microsoft PsTools, ou plus précisément télécharger le pslist l'utilité et l'utilisation PsList:
find
commande peut récupérer le faux de lignes de mise en correspondance des données dans la mémoire de la colonne dans le cas detasklist
, ou (inférieur ou supérieur à 1000) dans l'une des colonnes numériques dans lewmic
oupslist
colonnes numériques.1.500
dans la mémoire de la colonne). Dans la liste des tâches, vous pouvez filtrer la sortie (/fi
), dans wmic vous pouvez filtrer la sortie (where
clause), dans pslist vous pouvez filtrer la sortie (donner lepid
en ligne de commande). Alors quegrep
est un excellent outil, il n'est pas nécessaire de l'utiliser ici...jeu de PID pour l'adapter à votre situation.