Script de lot - Processus

Dans ce chapitre, nous aborderons les différents processus impliqués dans Batch Script.

Affichage de la liste des processus en cours d'exécution

Dans Batch Script, la commande TASKLIST peut être utilisée pour obtenir la liste des processus en cours d'exécution dans un système.

Syntaxe

TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter]
[/FO format] [/NH]
S.No. Options et description
1.

/S system

Spécifie le système distant auquel se connecter

2.

/U

[domain\]user

Spécifie le contexte utilisateur dans lequel la commande doit s'exécuter.

3.

/P [password]

Spécifie le mot de passe pour le contexte utilisateur donné. Invite à saisir si omis.

4.

/M [module]

Répertorie toutes les tâches utilisant actuellement le nom exe / dll donné. Si le nom du module n'est pas spécifié, tous les modules chargés sont affichés.

5.

/SVC

Affiche les services hébergés dans chaque processus.

6.

/V

Affiche des informations détaillées sur les tâches.

sept.

/FI filter

Affiche un ensemble de tâches qui correspondent à un critère donné spécifié par le filtre.

8.

/FO format

Spécifie le format de sortie. Valeurs valides: "TABLE", "LIST", "CSV".

9.

/NH

Spécifie que «l'en-tête de colonne» ne doit pas apparaître dans la sortie. Valable uniquement pour les formats "TABLE" et "CSV".

Exemples

TASKLIST

La commande ci-dessus obtiendra la liste de tous les processus en cours d'exécution sur votre système local. Voici un instantané de la sortie qui est rendue lorsque la commande ci-dessus est exécutée telle quelle. Comme vous pouvez le voir dans la sortie suivante, non seulement vous obtenez les différents processus en cours d'exécution sur votre système, mais vous obtenez également l'utilisation de la mémoire de chaque processus.

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

La commande ci-dessus prend la sortie affichée par tasklist et l'enregistre dans le fichier process.txt.

tasklist /fi "memusage gt 40000"

La commande ci-dessus ne récupérera que les processus dont la mémoire est supérieure à 40 Mo. Voici un exemple de sortie qui peut être rendu.

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

Tuer un processus particulier

Permet à un utilisateur exécutant Microsoft Windows XP Professionnel, Windows 2003 ou une version ultérieure de supprimer une tâche à partir d'une ligne de commande Windows par ID de processus (PID) ou nom d'image. La commande utilisée à cet effet est la commande TASKILL.

Syntaxe

TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] 
[/PID processid | /IM imagename] } [/T] [/F]
S.No. Options et description
1.

/S system

Spécifie le système distant auquel se connecter

2.

/U

[domain\]user

Spécifie le contexte utilisateur dans lequel la commande doit s'exécuter.

3.

/P [password]

Spécifie le mot de passe pour le contexte utilisateur donné. Invite à saisir si omis.

4.

/FI

FilterName

Applique un filtre pour sélectionner un ensemble de tâches. Permet d'utiliser "*". ex. imagename eq acme * Voir les filtres ci-dessous pour plus d'informations et des exemples.

5.

/PID

processID

Spécifie le PID du processus à terminer. Utilisez TaskList pour obtenir le PID.

6.

/IM

ImageName

Spécifie le nom d'image du processus à arrêter. Le caractère générique '*' peut être utilisé pour spécifier toutes les tâches ou tous les noms d'image.

sept.

/T

Met fin au processus spécifié et à tous les processus enfants qui ont été démarrés par lui.

8.

/F

Spécifie de forcer l'arrêt du ou des processus.

Exemples

taskkill /f /im notepad.exe

La commande ci-dessus tue la tâche ouverte du bloc-notes, si elle est ouverte.

taskill /pid 9214

La commande ci-dessus tue un processus qui a un processus de 9214.

Démarrer un nouveau processus

Les scripts DOS ont également la possibilité de démarrer un nouveau processus. Ceci est réalisé en utilisant la commande START.

Syntaxe

START "title" [/D path] [options] "command" [parameters]

  • title - Texte de la barre de titre de la fenêtre CMD (obligatoire.)

  • path - Répertoire de départ.

  • command - La commande, le fichier batch ou le programme exécutable à exécuter.

  • parameters - Les paramètres passés à la commande.

S.No. Options et description
1.

/MIN

Fenêtre de démarrage réduite

2.

/MAX

Fenêtre de démarrage agrandie.

3.

/LOW

Utilisez la classe de priorité IDLE.

4.

/NORMAL

Utilisez la classe de priorité NORMAL.

5.

/ABOVENORMAL

Utilisez la classe de priorité ABOVENORMAL.

6.

/BELOWNORMAL

Utilisez la classe de priorité BELOWNORMAL.

sept.

/HIGH

Utilisez la classe de haute priorité.

8.

/REALTIME

Utilisez la classe de priorité REALTIME.

Exemples

START "Test Batch Script" /Min test.bat

La commande ci-dessus exécutera le script batch test.bat dans une nouvelle fenêtre. Les fenêtres démarreront en mode réduit et porteront également le titre «Test Batch Script».

START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"

La commande ci-dessus exécutera effectivement Microsoft Word dans un autre processus, puis ouvrira le fichier TESTA.txt dans MS Word.