Afvikler et kommandolinjeudtryk i en seperat proces med adgang til StdOut, StdIn og StdErr.
Afvikler et kommandolinjeudtryk.
Selve afviklingen overvåges af klassen
WshScriptExec,
hvoraf der implicit dannes et objekt ved kald af WshShell.Exec(). „WshScriptExec“ giver blandt andet adgang til de tre strømme „StdIn“, „StdOut“ og „StdErr“.
PS. Et WSH-script sender en returkode til en kommandolinje med WScript.Quit()
.
Eksempel (JScript) på brug af Exec()
hvor indholdet af StdOut og StdErr løbende aflæses blandt andet ved hjælp af attributten Status
fra klassen „WshScriptExec“:
var CmdLine = 'cmd.exe /c "dir /Q"';
var WshShell = new ActiveXObject( "WScript.Shell" );
WshShell.CurrentDirectory = "C:\\";
var WshExec = WshShell.Exec( CmdLine );
while( WshExec.status == 0 ) // 0 = WshRunning
{
WScript.Sleep( 100 ); // 0.1 second
while( !WshExec.StdOut.AtEndOfStream )
{ WScript.Echo( "StdOut> " + WshExec.StdOut.ReadLine() ); }
while( !WshExec.StdOut.AtEndOfStream )
{ WScript.Echo( "StdErr> " + WshExec.StdErr.ReadLine() ); }
}
var CmdResult = WshExec.ExitCode;
WshExec = null;
WshShell = null;
if( CmdResult )
{ WScript.Echo( "ERROR: Command line failed with exit code " + CmdResult + "." ); }
else
{ WScript.Echo( "SUCCESS: Command line completed with success." ); }
WScript.Quit( CmdResult );
Bemærk at kommandolinje udtrykkets returværdi (%ERRORLEVEL%
) er tilgængelig i attributten ExitCode
.