procesos proceso procedimientos procedimiento penal mismo juridico entre ejemplos diferencia civil administrativo windows batch-file command-line cmd operating-system

windows - procedimientos - Buscar nombre de proceso por su ID de proceso



proceso y procedimiento civil (3)

El básico, pedir a la lista de tareas que filtre su salida y solo muestre la información de identificación del proceso indicada

tasklist /fi "pid eq 4444"

Para obtener solo el nombre del proceso, la línea debe dividirse

for /f "delims=," %%a in ('' tasklist /fi "pid eq 4444" /nh /fo:csv '') do echo %%~a

En este caso, la lista de procesos se recupera sin encabezados ( /nh ) en formato csv ( /fo:csv ). Las comas se usan como delimitadores de tokens y el primer token en la línea es el nombre de la imagen

nota : en algunas versiones de Windows (una de ellas, mi caso, es la versión española de Windows XP), el filtro pid en la lista de tareas no funciona. En este caso, el filtro sobre la lista de procesos debe hacerse fuera del comando

for /f "delims=," %%a in ('' tasklist /fo:csv /nh ^| findstr /b /r /c:"[^,]*,/"4444/"," '') do echo %%~a

Esto generará la lista de tareas y la filtrará buscando la identificación del proceso en la segunda columna de la salida de csv.

editado : alternativamente, puede suponer lo que ha hecho el equipo que tradujo el sistema operativo al español. No sé lo que puede pasar en otros lugares.

tasklist /fi "idp eq 4444"

Supongamos que conozco la ID del proceso. Quiero encontrar el nombre del proceso por su ID, usando el script por lotes de Windows. ¿Cómo puedo hacer esto?


Usando solo las utilidades "nativas" de Windows, intente lo siguiente, donde "516" es el ID de proceso para el que desea el nombre de la imagen:

for /f "delims=," %a in ( ''tasklist /fi "PID eq 516" /nh /fo:csv'' ) do ( echo %~a ) for /f %a in ( ''tasklist /fi "PID eq 516" ^| findstr "516"'' ) do ( echo %a )

O podría usar wmic (la herramienta de línea de comandos de Instrumental de administración de Windows) y obtener la ruta completa al ejecutable:

wmic process where processId=516 get name wmic process where processId=516 get ExecutablePath

O bien, puede descargar Microsoft PsTools , o específicamente descargar solo la utilidad pslist, y usar PsList:

for /f %a in ( ''pslist 516 ^| findstr "516"'' ) do ( echo %a )


@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

... establezca PID para adaptarse a su circunstancia.