Bonjour,
Je cherche à écrire un script vbs qui me vérifie la présence dans les
processus du fichier "setup.exe" tant qu'il est présent on ne fait rien et
lorsque il a disparue j'écris un fichier log dans c:\temp
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
~Jean-Marc~ [MVP]
Salutations *DIP* , tu nous disais :
Bonjour, Je cherche à écrire un script vbs qui me vérifie la présence dans les processus du fichier "setup.exe" tant qu'il est présent on ne fait rien et lorsque il a disparue j'écris un fichier log dans c:temp
Vite fait et non testé :
Option Explicit
Dim objWMIService, colProcesses, f, nomfic Const ForWriting=2 Set fso = WScript.CreateObject("Scripting.FileSystemObject")
' ---------- Attendre setup.exe --------------
Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!.rootcimv2") Do Wscript.sleep 500 Set colProcesses = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 'setup.exe'") Loop until colProcesses.Count = 0
' ----------------écrire le log --------------- nomfic="c:tempappli.log" set f = fso.OpenTextFile(nomfic, ForWriting , true) f.writeline "Setup fini" f.close
Je laisse la main à Michel pour la version en BAT/CMD ;-)
@+++
-- ~Jean-Marc~ MVP Shell/User Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *DIP* , tu nous disais :
Bonjour,
Je cherche à écrire un script vbs qui me vérifie la présence dans les
processus du fichier "setup.exe" tant qu'il est présent on ne fait
rien et lorsque il a disparue j'écris un fichier log dans c:temp
Vite fait et non testé :
Option Explicit
Dim objWMIService, colProcesses, f, nomfic
Const ForWriting=2
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
' ---------- Attendre setup.exe --------------
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\.rootcimv2")
Do
Wscript.sleep 500
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'setup.exe'")
Loop until colProcesses.Count = 0
' ----------------écrire le log ---------------
nomfic="c:tempappli.log"
set f = fso.OpenTextFile(nomfic, ForWriting , true)
f.writeline "Setup fini"
f.close
Je laisse la main à Michel pour la version en BAT/CMD ;-)
@+++
--
~Jean-Marc~ MVP Shell/User Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour, Je cherche à écrire un script vbs qui me vérifie la présence dans les processus du fichier "setup.exe" tant qu'il est présent on ne fait rien et lorsque il a disparue j'écris un fichier log dans c:temp
Vite fait et non testé :
Option Explicit
Dim objWMIService, colProcesses, f, nomfic Const ForWriting=2 Set fso = WScript.CreateObject("Scripting.FileSystemObject")
' ---------- Attendre setup.exe --------------
Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!.rootcimv2") Do Wscript.sleep 500 Set colProcesses = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 'setup.exe'") Loop until colProcesses.Count = 0
' ----------------écrire le log --------------- nomfic="c:tempappli.log" set f = fso.OpenTextFile(nomfic, ForWriting , true) f.writeline "Setup fini" f.close
Je laisse la main à Michel pour la version en BAT/CMD ;-)
@+++
-- ~Jean-Marc~ MVP Shell/User Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Do Re Mi chel La Si Do
Voilà :
@echo off :: Attend la fin du process, puis écrit dans C:TEMP.LOG echo Attente... :TEST sleepm 500 @for /F "usebackq tokens=1,2" %%i in (`tasklist /FI "IMAGENAME eq setup.exe" /NH`) do (goto :TEST) echo Log : 'Setup' terminé le %DATE% à %TIME% >C:TEMP.LOG
Attention, l'utilitaire sleepm.exe n'est pas standard. Il est à télécharger là : http://ponx.org/download/CD/DivProgMci/sleepm.exe
Mais il n'est pas indispensable (pour l'aide : sleepm [Entrée]
J'envoie la facture à qui ? En l'absence de devis, je peux faire un forfait à un million d'euros, prix d'amis, pour les lecteurs de ce newsgroup.
Michel Claveau
Voilà :
@echo off
:: Attend la fin du process, puis écrit dans C:TEMP.LOG
echo Attente...
:TEST
sleepm 500
@for /F "usebackq tokens=1,2" %%i in (`tasklist /FI "IMAGENAME eq setup.exe"
/NH`) do (goto :TEST)
echo Log : 'Setup' terminé le %DATE% à %TIME% >C:TEMP.LOG
Attention, l'utilitaire sleepm.exe n'est pas standard. Il est à télécharger
là :
http://ponx.org/download/CD/DivProgMci/sleepm.exe
Mais il n'est pas indispensable (pour l'aide : sleepm [Entrée]
J'envoie la facture à qui ? En l'absence de devis, je peux faire un
forfait à un million d'euros, prix d'amis, pour les lecteurs de ce
newsgroup.
@echo off :: Attend la fin du process, puis écrit dans C:TEMP.LOG echo Attente... :TEST sleepm 500 @for /F "usebackq tokens=1,2" %%i in (`tasklist /FI "IMAGENAME eq setup.exe" /NH`) do (goto :TEST) echo Log : 'Setup' terminé le %DATE% à %TIME% >C:TEMP.LOG
Attention, l'utilitaire sleepm.exe n'est pas standard. Il est à télécharger là : http://ponx.org/download/CD/DivProgMci/sleepm.exe
Mais il n'est pas indispensable (pour l'aide : sleepm [Entrée]
J'envoie la facture à qui ? En l'absence de devis, je peux faire un forfait à un million d'euros, prix d'amis, pour les lecteurs de ce newsgroup.
Michel Claveau
Jacques Barathon [MS]
"Do Re Mi chel La Si Do" wrote in message news:uWG%
Voilà :
@echo off :: Attend la fin du process, puis écrit dans C:TEMP.LOG echo Attente... :TEST sleepm 500 @for /F "usebackq tokens=1,2" %%i in (`tasklist /FI "IMAGENAME eq setup.exe" /NH`) do (goto :TEST) echo Log : 'Setup' terminé le %DATE% à %TIME% >C:TEMP.LOG
J'aime bien. Allez, un petit coup en MSH histoire de dire que c'est fait:
Malheureusement, MSH n'a (pour l'instant?) qu'une structure While qui dans cet exemple m'a contraint à écrire deux fois le test sur la présence du process: une fois avant d'entrer dans la boucle, puis une 2e fois dans la boucle. Sans le premier test la boucle se termine immédiatement...
Jacques
"Do Re Mi chel La Si Do" <enleverlesO.OmcO@OmclaveauO.com> wrote in message
news:uWG%23B3J5FHA.2524@TK2MSFTNGP10.phx.gbl...
Voilà :
@echo off
:: Attend la fin du process, puis écrit dans C:TEMP.LOG
echo Attente...
:TEST
sleepm 500
@for /F "usebackq tokens=1,2" %%i in (`tasklist /FI "IMAGENAME eq
setup.exe" /NH`) do (goto :TEST)
echo Log : 'Setup' terminé le %DATE% à %TIME% >C:TEMP.LOG
J'aime bien. Allez, un petit coup en MSH histoire de dire que c'est fait:
Malheureusement, MSH n'a (pour l'instant?) qu'une structure While qui dans
cet exemple m'a contraint à écrire deux fois le test sur la présence du
process: une fois avant d'entrer dans la boucle, puis une 2e fois dans la
boucle. Sans le premier test la boucle se termine immédiatement...
"Do Re Mi chel La Si Do" wrote in message news:uWG%
Voilà :
@echo off :: Attend la fin du process, puis écrit dans C:TEMP.LOG echo Attente... :TEST sleepm 500 @for /F "usebackq tokens=1,2" %%i in (`tasklist /FI "IMAGENAME eq setup.exe" /NH`) do (goto :TEST) echo Log : 'Setup' terminé le %DATE% à %TIME% >C:TEMP.LOG
J'aime bien. Allez, un petit coup en MSH histoire de dire que c'est fait:
Malheureusement, MSH n'a (pour l'instant?) qu'une structure While qui dans cet exemple m'a contraint à écrire deux fois le test sur la présence du process: une fois avant d'entrer dans la boucle, puis une 2e fois dans la boucle. Sans le premier test la boucle se termine immédiatement...
Si l'on est sûr que le process setup existe au début du script, ou si on veut récupérer l'ensemble des messages résultant des commandes du script, on peut se passer de "2> $null" qui n'est là que pour passer à la trappe le message d'erreur éventuel dans le cas où le process n'existerait pas.
Et pour ceux que ça intéresse, je viens d'apprendre que MSH supporte également la construction do { instructions } until ( condition ), ajoutée récemment et encore non documentée si je me réfère à l'aide en ligne.
Jacques
"Do Re Mi chel La Si Do" <enleverlesO.OmcO@OmclaveauO.com> wrote in message
news:%23PZpoTk5FHA.744@TK2MSFTNGP10.phx.gbl...
Pour une fois que le GOTO a un avantage...
En me renseignant un peu, j'ai finalement une solution bien plus rapide en
MSH:
Si l'on est sûr que le process setup existe au début du script, ou si on
veut récupérer l'ensemble des messages résultant des commandes du script, on
peut se passer de "2> $null" qui n'est là que pour passer à la trappe le
message d'erreur éventuel dans le cas où le process n'existerait pas.
Et pour ceux que ça intéresse, je viens d'apprendre que MSH supporte
également la construction do { instructions } until ( condition ), ajoutée
récemment et encore non documentée si je me réfère à l'aide en ligne.
Si l'on est sûr que le process setup existe au début du script, ou si on veut récupérer l'ensemble des messages résultant des commandes du script, on peut se passer de "2> $null" qui n'est là que pour passer à la trappe le message d'erreur éventuel dans le cas où le process n'existerait pas.
Et pour ceux que ça intéresse, je viens d'apprendre que MSH supporte également la construction do { instructions } until ( condition ), ajoutée récemment et encore non documentée si je me réfère à l'aide en ligne.