Bonjour à tous,
Je rencontre un problème dans le code ci-dessous :
Le problème est simple : la première boucle FOR ne boucle pas !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 :: Variable "liste" contenant les noms de processus à tuer SET listeProcessus=Notepad RocketDock Toto ECHO %listeProcessus% :: On démarre deux Notepad, pour le test de la deuxième boucle FOR Start /min Notepad Start /min Notepad :: Pour chaque nom de processus dans %listeProcess%; on liste les processus :: portant ce nom. On récupére les lignes, exceptées les 3 premières (en-tête :: du résultat de PSLIST), contenant ce nom de processus. :: Le token 1 contient le nom du processus, le token 2 contient son PID. :: Si le PID n'est pas renseigné, c'est qu'aucun processus de ce nom n'a été :: trouvé : dans ce cas on ne fait rien, sinon on détruit le process. FOR /F %%A IN ( 'ECHO %listeProcessus%' ) DO ( ECHO %%A FOR /F "TOKENS=1,2 SKIP=3" %%O IN ( 'PSLIST -e %%A' ) DO ( ECHO %%O %%P PSKILL -t %%P ) ) :: Fin du script :END
Le premier ECHO montre que %listeProcessus% semble correcte, et pourtant...
Pour la deuxième, pas de problème (les deux process Notepad sont bien tués), mais après le deuxième PSKILL, la boucle se termine immédiatement : le ECHO %%A (qui devrait renvoyer "RocketDock") n'est pas exécuté.
Je suis sûr que le problème est très simple, mais je ne vois rien !?
Merci d'avance pour vos lumières !
EDIT : si besoin, la page à partir de laquelle télécharger PSKILL et PSLIST : http://www.sysinternals.com/ntw2k/fr.../pstools.shtml
Partager