Script por lotes: proceso
En este capítulo, discutiremos los diversos procesos involucrados en Batch Script.
Ver la lista de procesos en ejecución
En Batch Script, el comando TASKLIST se puede utilizar para obtener la lista de procesos que se están ejecutando actualmente dentro de un sistema.
Sintaxis
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter]
[/FO format] [/NH]
S.No. | Opciones y descripción |
---|---|
1. | /S system Especifica el sistema remoto al que conectarse |
2. | /U [domain\]user Especifica el contexto de usuario en el que se debe ejecutar el comando. |
3. | /P [password] Especifica la contraseña para el contexto de usuario dado. Solicita entrada si se omite. |
4. | /M [module] Enumera todas las tareas que actualmente usan el nombre exe / dll proporcionado. Si no se especifica el nombre del módulo, se muestran todos los módulos cargados. |
5. | /SVC Muestra los servicios alojados en cada proceso. |
6. | /V Muestra información detallada de la tarea. |
7. | /FI filter Muestra un conjunto de tareas que coinciden con un criterio determinado especificado por el filtro. |
8. | /FO format Especifica el formato de salida. Valores válidos: "TABLE", "LIST", "CSV". |
9. | /NH Especifica que el "Encabezado de columna" no debe mostrarse en la salida. Válido solo para los formatos "TABLE" y "CSV". |
Ejemplos
TASKLIST
El comando anterior obtendrá la lista de todos los procesos que se ejecutan en su sistema local. A continuación se muestra una instantánea de la salida que se representa cuando el comando anterior se ejecuta como está. Como puede ver en el siguiente resultado, no solo obtiene los diversos procesos que se ejecutan en su sistema, sino que también obtiene el uso de memoria de cada proceso.
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 4 K
System 4 Services 0 272 K
smss.exe 344 Services 0 1,040 K
csrss.exe 528 Services 0 3,892 K
csrss.exe 612 Console 1 41,788 K
wininit.exe 620 Services 0 3,528 K
winlogon.exe 648 Console 1 5,884 K
services.exe 712 Services 0 6,224 K
lsass.exe 720 Services 0 9,712 K
svchost.exe 788 Services 0 10,048 K
svchost.exe 832 Services 0 7,696 K
dwm.exe 916 Console 1 117,440 K
nvvsvc.exe 932 Services 0 6,692 K
nvxdsync.exe 968 Console 1 16,328 K
nvvsvc.exe 976 Console 1 12,756 K
svchost.exe 1012 Services 0 21,648 K
svchost.exe 236 Services 0 33,864 K
svchost.exe 480 Services 0 11,152 K
svchost.exe 1028 Services 0 11,104 K
svchost.exe 1048 Services 0 16,108 K
wlanext.exe 1220 Services 0 12,560 K
conhost.exe 1228 Services 0 2,588 K
svchost.exe 1276 Services 0 13,888 K
svchost.exe 1420 Services 0 13,488 K
spoolsv.exe 1556 Services 0 9,340 K
tasklist > process.txt
El comando anterior toma la salida mostrada por la lista de tareas y la guarda en el archivo process.txt.
tasklist /fi "memusage gt 40000"
El comando anterior solo buscará aquellos procesos cuya memoria sea superior a 40 MB. A continuación se muestra una salida de muestra que se puede renderizar.
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
dwm.exe 916 Console 1 127,912 K
explorer.exe 2904 Console 1 125,868 K
ServerManager.exe 1836 Console 1 59,796 K
WINWORD.EXE 2456 Console 1 144,504 K
chrome.exe 4892 Console 1 123,232 K
chrome.exe 4976 Console 1 69,412 K
chrome.exe 1724 Console 1 76,416 K
chrome.exe 3992 Console 1 56,156 K
chrome.exe 1168 Console 1 233,628 K
chrome.exe 816 Console 1 66,808 K
Matar un proceso particular
Permite a un usuario que ejecuta Microsoft Windows XP professional, Windows 2003 o posterior eliminar una tarea desde una línea de comandos de Windows por ID de proceso (PID) o nombre de imagen. El comando utilizado para este propósito es el comando TASKILL.
Sintaxis
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter]
[/PID processid | /IM imagename] } [/T] [/F]
S.No. | Opciones y descripción |
---|---|
1. | /S system Especifica el sistema remoto al que conectarse |
2. | /U [domain\]user Especifica el contexto de usuario en el que se debe ejecutar el comando. |
3. | /P [password] Especifica la contraseña para el contexto de usuario dado. Solicita entrada si se omite. |
4. | /FI FilterName Aplica un filtro para seleccionar un conjunto de tareas. Permite utilizar "*". ex. imagename eq acme * Consulte los filtros a continuación para obtener información adicional y ejemplos. |
5. | /PID processID Especifica el PID del proceso que se terminará. Utilice TaskList para obtener el PID. |
6. | /IM ImageName Especifica el nombre de la imagen del proceso que se terminará. El comodín '*' se puede utilizar para especificar todas las tareas o nombres de imágenes. |
7. | /T Termina el proceso especificado y cualquier proceso hijo que haya iniciado. |
8. | /F Especifica la terminación forzosa de los procesos. |
Ejemplos
taskkill /f /im notepad.exe
El comando anterior mata la tarea del bloc de notas abierto, si está abierto.
taskill /pid 9214
El comando anterior mata un proceso que tiene un proceso de 9214.
Iniciar un nuevo proceso
Las secuencias de comandos de DOS también tienen la disponibilidad para iniciar un nuevo proceso por completo. Esto se logra usando el comando START.
Sintaxis
START "title" [/D path] [options] "command" [parameters]
Donde
title - Texto para la barra de título de la ventana de CMD (obligatorio).
path - Directorio de inicio.
command - El comando, archivo por lotes o programa ejecutable que se ejecutará.
parameters - Los parámetros pasados al comando.
S.No. | Opciones y descripción |
---|---|
1. | /MIN Ventana de inicio minimizada |
2. | /MAX Ventana de inicio maximizada. |
3. | /LOW Utilice la clase de prioridad IDLE. |
4. | /NORMAL Utilice la clase de prioridad NORMAL. |
5. | /ABOVENORMAL Utilice la clase de prioridad ABOVENORMAL. |
6. | /BELOWNORMAL Utilice la clase de prioridad BELOWNORMAL. |
7. | /HIGH Utilice la clase de ALTA prioridad. |
8. | /REALTIME Utilice la clase de prioridad REALTIME. |
Ejemplos
START "Test Batch Script" /Min test.bat
El comando anterior ejecutará el script por lotes test.bat en una nueva ventana. Las ventanas se iniciarán en el modo minimizado y también tendrán el título de "Prueba de secuencia de comandos por lotes".
START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"
El comando anterior realmente ejecutará Microsoft Word en otro proceso y luego abrirá el archivo TESTA.txt en MS Word.