[英]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.