JScript: 外部コマンドを並列実行する
コマンド(文字列)の配列をパラメータに取り、指定されたコマンドを並列実行し、
各コマンドのリターンコードを配列として返す関数。
コマンドが見つからない場合は –1 を返す。
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 | var executeAsyncCommands = function (commands) { var n = commands.length; var processes = new Array(n); var returns = new Array(n); var success = new Array(n); var shell = new ActiveXObject( "WScript.Shell" ); for ( var i = 0; i < n; ++i) { try { processes[i] = shell.Exec(commands[i]); success[i] = true ; } catch (e) { success[i] = false ; } } L: while ( true ) { WScript.Sleep(100); for (i = 0; i < n; ++i) { if (success[i] && processes[i].Status == 0) continue L; } break ; } for ( var i = 0; i < n; ++i) { returns[i] = success[i] ? processes[i].ExitCode : -1; } return returns; }; |
0 件のコメント:
コメントを投稿