[英]nodejs exec command fails for some windows commands with no clear error message
我也刚碰到这个问题。 虽然大多数控制台应用程序在没有错误时应该返回零退出代码,但 robocopy 有一系列自定义退出代码。 这让 Node 认为在执行过程中出现了错误,而实际上可能没有。
根据此处,Robocopy 具有以下构成退出代码的退出代码位:
0×10 严重错误。 Robocopy 没有复制任何文件。 这要么是使用错误,要么是由于对源目录或目标目录的访问权限不足而导致的错误。
0×08 无法复制某些文件或目录(发生复制错误并超出重试限制)。 进一步检查这些错误。
0×04 检测到一些不匹配的文件或目录。 检查输出日志。 家政服务可能是必要的。
0×02 检测到一些额外的文件或目录。 检查输出日志。 可能需要一些家政服务。
0×01 一个或多个文件复制成功(即有新文件到达)。
0×00 未发生错误,未进行复制。 源目录树和目标目录树完全同步。
要解决此问题,您需要捕获错误并检查错误代码:
const cp = require('child_process');
try {
cp.execSync('robocopy ...');
} catch (err) {
console.log(err.status); // get the return code
console.log(err.output.toString()); // get robocopy's full output
}
我认为您通常会认为大于 8 的代码是一个更严重的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.