2017-11-10 5 views
1

.vbsファイルをノードアプリケーションから実行する方法を調べようとしています。ノードを持つ.vbsスクリプトを実行する

スクリプトはそれ自身のもので、ノードアプリケーションはスクリプトの実行が終了したとき以外は何も情報を必要としません。

これを行う方法が見つかったら、スクリプトにパラメータを渡す方法を見ていきますが、今はスクリプトをどのように実行できるかを知る必要があります。

おかげ

答えて

3

使用child_process.spawnSync(command[, args][, options])a,bを参照してください。デモ:考える

|.. 
+---vbs 
|  slave.vbs 
| 
\---nodejs 
     master.js 

slave.vbs:

Option Explicit 

Dim a : a = "no arg" 
If 0 < WScript.Arguments.Count Then a = WScript.Arguments(0) 
Dim o : o = Array("", WScript.ScriptName, a, Time()) 
o(0) = "MsgBox" 
MsgBox Join(o, "|") 
o(0) = "StdOut" 
WScript.Stdout.WriteLine Join(o, "|") 
o(0) = "StdErr" 
WScript.Stderr.WriteLine Join(o, "|") 
WScript.Quit 3 

master.js:

'use strict'; 

const 
    spawn = require('child_process').spawnSync, 
    vbs = spawn('cscript.exe', [ '../vbs/slave.vbs', 'one' ]); 

console.log(`stderr: ${vbs.stderr.toString()}`); 
console.log(`stdout: ${vbs.stdout.toString()}`); 
console.log(`status: ${vbs.status}`); 

出力:

node master.js 

(MessageBox) 

stderr: StdErr|slave.vbs|one|14:09:39 

stdout: StdOut|slave.vbs|one|14:09:39 

status: 3 
関連する問題