2017-11-10 8 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