【问题标题】:Getting a blank cmd prompt on running a bat file in nodejs在 nodejs 中运行 bat 文件时出现空白 cmd 提示
【发布时间】:2020-05-07 09:20:09
【问题描述】:

我正在尝试通过在 nodejs 中传递参数来运行 .bat 文件。但是,我得到一个空的命令提示符。如何获取粘贴在路径上的命令。

代码-

server.js

var bat = require.resolve('E:/API_Gateway_through_Swagger/New_Project/aws-bat-file-3.bat');
var num = "123"
var state_desc = "abc";

var ls = spawn(bat, [num, state_desc  ]);

ls.stdout.on('data', function (data) {
    console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
    console.log('stderr: ' + data);
});

ls.on('exit', function (code) {
    console.log('child process exited with code ' + code);
});

蝙蝠文件-

aws-bat-file-3.bat

echo off
echo "Batch Started"
set arg1=%1
set arg2=%2

START "Task Options"  cmd.exe /b " cd C:\Users\myfolder &  aws apigateway create deployment  --rest-api-id  %arg1%  --stage-name dev  --stage-description  %arg2%"

输出的img文件是-

【问题讨论】:

  • 要将命令传递给cmd.exe,请在/c 之后添加命令。查看cmd /? 寻求帮助。目前,正在打开 cmd.exe 并且不知道要运行什么命令,因此正在等待输入。 start 有一个用于启动目录的 /d 参数,这可能比在传递给 cmd.exe 的命令中使用 cd 更好。

标签: javascript node.js batch-file child-process


【解决方案1】:

NodeJS 彻底记录了在 Windows 上生成批处理文件的问题in this section

摘录:

在 Windows 上运行时,可以使用 child_process.spawn() 和 child_process.exec() 调用在 Windows 上运行的 .bat 和 .cmd 文件,或者通过生成 cmd.exe 并传递 .bat 或 .cmd文件作为参数(这是 shell 选项和 child_process.exec() 所做的)。

const bat = spawn('"my script.cmd"', ['a', 'b'], { shell: true });

【讨论】:

  • 对不起@SOFe 写作 -->var ls = spawn(bat, [num, state_desc ]), {shell: true};没有区别
  • 您是否检查过您的bat 值是否指向正确的路径?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多