【问题标题】:Node Child Process Exec Command Failed with error code 1节点子进程执行命令失败,错误代码为 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 次后我给出了错误

标签: node.js cmd typescript visual-studio-code child-process


【解决方案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://stackoverflow.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 中正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 2018-07-12
    • 2015-10-12
    • 2017-02-20
    相关资源
    最近更新 更多