【问题标题】:Run .vbs script with node使用节点运行 .vbs 脚本
【发布时间】:2017-11-10 07:59:22
【问题描述】:

我正在尝试找出如何从节点应用程序运行.vbs 文件。

脚本自己做事,我的节点应用程序不需要返回任何信息,除非脚本完成运行。

当我找到一种方法时,我会考虑将参数传递给脚本,但现在我只需要知道如何运行脚本。

谢谢

【问题讨论】:

    标签: node.js vbscript


    【解决方案1】:

    使用child_process.spawnSync(command[, args][, options])。请参阅ab。演示:

    给定:

    |..
    +---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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 2017-07-05
      相关资源
      最近更新 更多