Questo è un esempio di codice VBScript che mostra come catturare qualsiasi cosa un programma da riga di comando invia allo standard output. Esegue il comando xcopy /?
e mostra l'output in una finestra di messaggio. Prima che venga visualizzata la finestra di messaggio, per una frazione di secondo si vede apparire la finestra della console.Codice VBscript per acquisire lo stdout, senza mostrare la finestra della console
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("xcopy /?")
Do
line = objExec.StdOut.ReadLine()
s = s & line & vbcrlf
Loop While Not objExec.Stdout.atEndOfStream
WScript.Echo s
Ecco un altro esempio di codice VBScript che mostra come eseguire uno script senza mostrare la finestra della console.
objShell.Run "c:\temp\mybatch.bat C:\WINDOWS\system32\cmd.exe", 0
o
objShell.Run "c:\temp\myscript.vbs C:\WINDOWS\system32\cscript.exe", 0
Come si può vedere che ha la forma <script><space><executor>
. L'ultimo esempio utilizza objShell.Run
invece di objShell.Exec
Quello che non so è come eseguire un programma a riga di comando (se necessario da un file batch), catturare lo standard output, senza mostrare la finestra della console. Qualche idea?
Una soluzione geniale. Peccato per i file temporanei. Ma soddisfa i requisiti quindi i punti sono tuoi. Grazie, Marcel. – mgr326639