JScript: 外部コマンドを並列実行する
コマンド(文字列)の配列をパラメータに取り、指定されたコマンドを並列実行し、
各コマンドのリターンコードを配列として返す関数。
コマンドが見つからない場合は –1 を返す。
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 件のコメント:
コメントを投稿