Bonjour à tous,
je souhaite pouvoir afficher des informations sur l'état d'exécution de mon programme dans l'invité de commande (celui depuis lequel j'ai lancé mon script).
J'ai essayé ceci:
1 2 3 4 5
| Set fso = CreateObject ("Scripting.FileSystemObject")
Set stdout = fso.GetStandardStream (1)
Set stderr = fso.GetStandardStream (2)
stdout.WriteLine "This will go to standard output."
stderr.WriteLine "This will go to error output." |
Sans succès...
J'ai essayé ceci:
WScript.stdout.WriteLine "En cours d'execution"
D'après les sources que j'ai lu, cela devrait fonctionner, un problème avec Windows 10?
Ces méthodes ne sont peut-être plus au goût du jour...
Merci d'avance d'éclairer ma lanterne 
Voici le script complet:
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 27 28 29 30 31 32 33 34 35
| 'Archive un dossier
Dim CheminDossierAZip, CheminDest, i
Dim WS, fso, prg, CMND
Set fso = CreateObject("Scripting.FileSystemObject")
Set WS = CreateObject("WScript.shell")
CheminDossierAZip = WScript.Arguments(0)
CheminDest = Replace(CheminDossierAZip," ","_") & ".7z"
CheminDossierAZip = fso.GetFolder(CheminDossierAZip).ShortPath
prg = fso.GetFile("C:\Program Files\7-Zip\7z.exe").ShortPath
CMND = prg & " a -sfx " & CheminDest & " " & CheminDossierAZip
WS.Run CMND, 0, True
Set fso = CreateObject ("Scripting.FileSystemObject")
WScript.stdout.WriteLine "En cours d'execution"
Do while Proccess("7z.exe") = True
WScript.Sleep 100
WScript.stdout.WriteLine "En cours d'execution"
loop
Function Proccess(nomfichier)
dim objWMIService
dim ProcessEncours
dim strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set ProcessEncours = objWMIService.ExecQuery ("Select name from Win32_Process where name ='" & nomfichier & "'")
Set objWMIService = NotHing
If ProcessEncours.Count <> 0 Then Proccess = True Else Proccess = False
Set ProcessEncours = NotHing
End Function |
D'ailleurs la Function Proccess ne fonctionne pas non plus correctement, je pense que la ligne suivante y est pour quelque chose aussi:
Set ProcessEncours = objWMIService.ExecQuery ("Select name from Win32_Process where name ='" & nomfichier & "'")
Qu'en pensez-vous?
Partager