Run .vbs script with node

后端 未结 1 924
栀梦
栀梦 2021-01-01 04:22

I am trying to find out how I can run a .vbs file from a node application.

The script does it\'s own thing and my node application doesn\'t need any inf

相关标签:
1条回答
  • 2021-01-01 04:55

    Use child_process.spawnSync(command[, args][, options]). See a, b. Demo:

    Given:

    |..
    +---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}` );
    

    output:

    node master.js
    
    (MessageBox)
    
    stderr: StdErr|slave.vbs|one|14:09:39
    
    stdout: StdOut|slave.vbs|one|14:09:39
    
    status: 3
    
    0 讨论(0)
提交回复
热议问题