【问题标题】:Calling VB Script using Nodejs [duplicate]使用Nodejs调用VB脚本[重复]
【发布时间】:2020-05-10 21:05:54
【问题描述】:

我需要一个一个调用 4 个 vb 脚本文件(.vbs)来执行几个 excel 宏。让我们说如果我点击开始按钮,它将触发第一个 .vbs 任务,一旦第一个 .vbs 完成然后它应该移动到第二个 .vbs 调用并继续。这些都应该通过在 Web UI 中单击一个按钮来触发。我如何使用nodejs来实现这一点?我在互联网上找到了这个下面的包(使用 CMD),但我无法继续如何使用 POST 方法使用提交按钮来实现这一点并一一执行 vbs 文件。

const nodeCmd = require('node-cmd');
app.post('/', function (req, res) {


    res.sendFile(__dirname + '/progress.html');
    callvbs();

});
function callvbs()
{

    nodeCmd.get('callvbs.vbs');
    console.log('file created....');

}

【问题讨论】:

标签: javascript node.js


【解决方案1】:

首先,我不确定在 api 调用期间执行 vb 脚本的完整用例是什么。我不建议这样做。寻找其他替代方案。如果真的需要的话。您可以将node-cmd 与承诺一起使用。有点像

const Promise = require("bluebird");
const cmd = require("node-cmd");

const getAsync = Promise.promisify(cmd.get, {"multiArgs": true, "context": cmd});

async function callScripts() {
  const script1Response = await getAsync("script1.vbs");
  console.log(script1Response);
  const script2Response = await getAsync("script2.vbs");
  console.log(script2Response);
  const script3Response = await getAsync("script3.vbs");
  console.log(script3Response);
  const script4Response = await getAsync("script4.vbs");
  console.log(script4Response);
}

app.post("/", async (req, res) => {
  await callScripts();
});


【讨论】:

    猜你喜欢
    • 2017-05-26
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2017-01-18
    • 2019-06-02
    • 1970-01-01
    相关资源
    最近更新 更多