Bonjour,
Comment tester dans un script batch qu'un auture script batch est en cours
d'exécution ou non ?
Merci
--
SupDePlouf
Bonjour,
Comment tester dans un script batch qu'un auture script batch est en cours
d'exécution ou non ?
Merci
--
SupDePlouf
Bonjour,
Comment tester dans un script batch qu'un auture script batch est en cours
d'exécution ou non ?
Merci
--
SupDePlouf
J'ai fait en sorte que ce script "Kix" par l'intermédiaire d'un batch du
type
--- toto.bat
kix32.exe script.kix
--- toto.bat
soit lancé à chaque démarrage de la machine.
Je souhaite me prémunir d'un arrêt inattendu en surveillant, d'une façon
ou
d'une autre, que ce batch ou ce script.kix tourne bien.
Quelle est donc d'après vous la meilleure solution dans ce cas précis ?
J'ai fait en sorte que ce script "Kix" par l'intermédiaire d'un batch du
type
--- toto.bat
kix32.exe script.kix
--- toto.bat
soit lancé à chaque démarrage de la machine.
Je souhaite me prémunir d'un arrêt inattendu en surveillant, d'une façon
ou
d'une autre, que ce batch ou ce script.kix tourne bien.
Quelle est donc d'après vous la meilleure solution dans ce cas précis ?
J'ai fait en sorte que ce script "Kix" par l'intermédiaire d'un batch du
type
--- toto.bat
kix32.exe script.kix
--- toto.bat
soit lancé à chaque démarrage de la machine.
Je souhaite me prémunir d'un arrêt inattendu en surveillant, d'une façon
ou
d'une autre, que ce batch ou ce script.kix tourne bien.
Quelle est donc d'après vous la meilleure solution dans ce cas précis ?
Bonsoir !Ca semble marcher ça:
Cela dépend comment a été lancé le batch.
S'il a été lancé interactivement, il n'est pas possible de
savoir,
simplement, si le batch est en fonctionnement.
S'il a été lancé comme paramètre d'une ligne de
commande (par exemple, avec
un "cmd /ctemp.bat"), là, c'est possible.
Il suffit d'utiliser un batch de ce genre :
wmic process where name="cmd.exe" list full |find
"temp.bat"
En l'absence du nom du script dans la ligne de commande, il reste possible
de lister tous les process "cmd.exe" (comme le fait Gilles), avec le
mini-batch suivant :
wmic process where name="cmd.exe" list full |find
"CommandLine"
(pour avoir la ligne de commande)
ou
wmic process where name="cmd.exe" list full |find
"ProcessId"
(pour avoir le PID)
Mais je doute que cela réponde à ton besoin.
Une autre solution consiste à utiliser un signal, dans le premier batch
(par
exemple un fichier-repère), ouvert au début du batch, et
supprimé à la fin.
Si le signal existe, c'est que le batch est lancé.
Mais, il faut avoir la possibilité de modifier le batch...
@-salutations
Michel Claveau
Bonsoir !Ca semble marcher ça:
Cela dépend comment a été lancé le batch.
S'il a été lancé interactivement, il n'est pas possible de
savoir,
simplement, si le batch est en fonctionnement.
S'il a été lancé comme paramètre d'une ligne de
commande (par exemple, avec
un "cmd /ctemp.bat"), là, c'est possible.
Il suffit d'utiliser un batch de ce genre :
wmic process where name="cmd.exe" list full |find
"temp.bat"
En l'absence du nom du script dans la ligne de commande, il reste possible
de lister tous les process "cmd.exe" (comme le fait Gilles), avec le
mini-batch suivant :
wmic process where name="cmd.exe" list full |find
"CommandLine"
(pour avoir la ligne de commande)
ou
wmic process where name="cmd.exe" list full |find
"ProcessId"
(pour avoir le PID)
Mais je doute que cela réponde à ton besoin.
Une autre solution consiste à utiliser un signal, dans le premier batch
(par
exemple un fichier-repère), ouvert au début du batch, et
supprimé à la fin.
Si le signal existe, c'est que le batch est lancé.
Mais, il faut avoir la possibilité de modifier le batch...
@-salutations
Michel Claveau