Script batch - Processo
In questo capitolo, discuteremo i vari processi coinvolti in Batch Script.
Visualizzazione dell'elenco dei processi in esecuzione
In Batch Script, il comando TASKLIST può essere utilizzato per ottenere l'elenco dei processi attualmente in esecuzione all'interno di un sistema.
Sintassi
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter]
[/FO format] [/NH]
S.No. | Opzioni e descrizione |
---|---|
1. | /S system Specifica il sistema remoto a cui connettersi |
2. | /U [domain\]user Specifica il contesto utente in cui deve essere eseguito il comando. |
3. | /P [password] Specifica la password per il contesto utente specificato. Richiede input se omesso. |
4. | /M [module] Elenca tutte le attività che attualmente utilizzano il nome exe / dll specificato. Se il nome del modulo non è specificato, vengono visualizzati tutti i moduli caricati. |
5. | /SVC Visualizza i servizi ospitati in ogni processo. |
6. | /V Visualizza informazioni dettagliate sull'attività. |
7. | /FI filter Visualizza una serie di attività che corrispondono a un determinato criterio specificato dal filtro. |
8. | /FO format Specifica il formato di output. Valori validi: "TABLE", "LIST", "CSV". |
9. | /NH Specifica che l '"intestazione della colonna" non deve essere visualizzata nell'output. Valido solo per i formati "TABELLA" e "CSV". |
Esempi
TASKLIST
Il comando precedente otterrà l'elenco di tutti i processi in esecuzione sul tuo sistema locale. Di seguito è riportata un'istantanea dell'output che viene visualizzato quando il comando precedente viene eseguito così com'è. Come puoi vedere dal seguente output, non solo ottieni i vari processi in esecuzione sul tuo sistema, ma ottieni anche l'utilizzo della memoria di ogni processo.
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
Il comando precedente prende l'output visualizzato da tasklist e lo salva nel file process.txt.
tasklist /fi "memusage gt 40000"
Il comando precedente recupererà solo quei processi la cui memoria è maggiore di 40 MB. Di seguito è riportato un output di esempio che può essere visualizzato.
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
Uccidere un processo particolare
Consente a un utente che esegue Microsoft Windows XP professional, Windows 2003 o versioni successive di terminare un'attività da una riga di comando di Windows tramite ID processo (PID) o nome immagine. Il comando utilizzato per questo scopo è il comando TASKILL.
Sintassi
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter]
[/PID processid | /IM imagename] } [/T] [/F]
S.No. | Opzioni e descrizione |
---|---|
1. | /S system Specifica il sistema remoto a cui connettersi |
2. | /U [domain\]user Specifica il contesto utente in cui deve essere eseguito il comando. |
3. | /P [password] Specifica la password per il contesto utente specificato. Richiede input se omesso. |
4. | /FI FilterName Applica un filtro per selezionare un insieme di attività. Consente di utilizzare "*". ex. nome immagine eq acme * Vedi sotto i filtri per ulteriori informazioni ed esempi. |
5. | /PID processID Specifica il PID del processo da terminare. Usa TaskList per ottenere il PID. |
6. | /IM ImageName Specifica il nome dell'immagine del processo da terminare. Il carattere jolly "*" può essere utilizzato per specificare tutte le attività o i nomi delle immagini. |
7. | /T Termina il processo specificato e tutti i processi figli da esso avviati. |
8. | /F Specifica di terminare forzatamente i processi. |
Esempi
taskkill /f /im notepad.exe
Il comando precedente termina l'attività del blocco note aperto, se aperta.
taskill /pid 9214
Il comando precedente termina un processo che ha un processo 9214.
Avvio di un nuovo processo
Lo scripting DOS ha anche la disponibilità per avviare del tutto un nuovo processo. Ciò si ottiene utilizzando il comando START.
Sintassi
START "title" [/D path] [options] "command" [parameters]
In cui
title - Testo per la barra del titolo della finestra CMD (obbligatorio).
path - Directory iniziale.
command - Il comando, il file batch o il programma eseguibile da eseguire.
parameters - I parametri passati al comando.
S.No. | Opzioni e descrizione |
---|---|
1. | /MIN Finestra di avvio ridotta a icona |
2. | /MAX Finestra di avvio ingrandita. |
3. | /LOW Usa la classe di priorità IDLE. |
4. | /NORMAL Usa la classe di priorità NORMALE. |
5. | /ABOVENORMAL Usa la classe di priorità ABOVENORMAL. |
6. | /BELOWNORMAL Usa la classe di priorità BELOWNORMAL. |
7. | /HIGH Usa la classe di priorità ALTA. |
8. | /REALTIME Usa la classe di priorità REALTIME. |
Esempi
START "Test Batch Script" /Min test.bat
Il comando precedente eseguirà lo script batch test.bat in una nuova finestra. Le finestre verranno avviate in modalità ridotta a icona e avranno anche il titolo di "Test Batch Script".
START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"
Il comando precedente eseguirà effettivamente Microsoft Word in un altro processo e quindi aprirà il file TESTA.txt in MS Word.