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.