Получение пустого приглашения cmd при запуске файла bat в nodejs - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь запустить .bat-файл, передав ему аргументы в nodejs. Однако я получаю пустую командную строку. Как вставить команду в путь.

код -

сервер. 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);
});

Bat файл -

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-prompt

1 Ответ

0 голосов
/ 07 мая 2020

NodeJS задокументировал проблему создания командных файлов на Windows тщательно в этом разделе .

Отрывок:

При работе на * 1013 Файлы *, .bat и .cmd могут быть вызваны с помощью child_process.spawn () с установленной опцией оболочки, с помощью child_process.exe c () или путем создания cmd.exe и передачи файла .bat или .cmd как аргумент (это то, что делают параметр оболочки и child_process.exe c ()).

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