节点子进程执行命令失败,错误代码为 1

Posted

技术标签:

【中文标题】节点子进程执行命令失败,错误代码为 1【英文标题】:Node Child Process Exec Command Failed with error code 1 【发布时间】:2016-04-09 22:04:24 【问题描述】:

我正在尝试使用节点 js 子进程执行某些行并出现错误。 以下是我的代码:

let cmd : string = "code " + PROJECTS[value];
exec(cmd, function callback(error, stdout, stderr) 
  console.log("started console app");
);

错误:

cmd:"C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\code-settings-syn... (length: 82)"
code:1
killed:false
message:"Command failed: C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\c... (length: 99)"
signal:null
stack:undefined

错误 JSON 的详细信息。

Full CMD : "C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\code-settings-sync""
Full message : "Command failed: C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\code-settings-sync"\n"

【问题讨论】:

尝试从你的程序中复制完整的命令并在终端中手动执行。 当我在终端中复制并运行命令时它可以工作,但是在运行 1,2 次后我给出了错误 【参考方案1】:

我不想看到整个错误(太冗长)所以我做了这样的事情:

try  
  const  stdout, stderr  = await exec('echo TEST');
  console.log('stdout:', stdout);
  console.log('stderr:', stderr);
 catch (e) 
  // If exec fails and you want to see the whole ugly error: 
  // console.error(e);
  console.log('How about a nice human readable message instead?'); 

由于“等待”,它进入了“异步”函数。 更多信息:https://***.com/a/56095793/722796

【讨论】:

【参考方案2】:

尝试一个更简单的例子..

var exec = require('child_process').exec;
var cmd = 'code C:\Program Files';
exec(cmd, function(err, stdout, stderr) 
if (err) 
console.error(err);
return;

console.log(stdout); 
);

这行得通吗??

【讨论】:

问题是它在这个例子和我的例子之后工作了 1.2 倍,在同样的错误弹出窗口之后 验证您传递给 exec 命令或存储在数组中的字符串。就您的操作系统而言,它是否正确转义 是的,您可以在我显示的代码中检查完整的 CMD,并在我在命令提示符下编写时在 Windows 中正常工作。

以上是关于节点子进程执行命令失败,错误代码为 1的主要内容,如果未能解决你的问题,请参考以下文章

无法执行“gcc”:权限被拒绝错误:命令“gcc”失败,cPanel 上的退出状态为 1

执行命令时代码构建失败并出现错误:npm install。原因:退出状态 127

InstallationError:命令“python setup.py egg_info”失败,错误代码为1 / tmp / pip-build-Jr1szu / Django /

构建步骤“执行 Windows 批处理命令”将构建标记为失败已完成:失败

构建命令失败。执行过程时出错

节点子进程事件监听