WshShell.Exec()

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.

Niels Grove-Rasmussen Opdateret 18-03-2019 01:25:50.
Ting Ta'r Tid! Hentet 20-04-2024 07:16:20.