Node.js child_process.exe c не возвращает код ошибки 9009 на Windows - PullRequest
0 голосов
/ 17 июня 2020

Я запускаю Node.js 12,13 exe c на Windows, и мне нужно определить, когда команда не найдена. Я ожидал появления ошибки с кодом 9009 , аналогичным поведению cmd.exe. Но exec возвращает error.code === 1, например:

const exec = require('child_process').exec;
exec("no-exists", (err, stdo, stde) => {
  if (err)
    console.log("exec error code", err.code);
})

Есть ли способ заставить его возвращать код ошибки 9009 , как это делает cmd.exe? Или любой другой способ безопасно отличить guish ошибка не найдена команда?

Примечание: упаковка команды в оболочку no-exists-wrapper.cmd:

@echo off
no-exists
exit /b %errorlevel%

и вызов ее из exec() возвращает 9009 . Но такой взлом для меня последний вариант по причинам развертывания.

...