Javascript node.js+;7zip&x2B;exec(同步)未创建存档?

Javascript node.js+;7zip&x2B;exec(同步)未创建存档?,javascript,node.js,command-line-interface,7zip,Javascript,Node.js,Command Line Interface,7zip,我有以下js代码,它应该将当前目录中的所有文件添加到7z存档中: "use strict"; const { execSync } = require("child_process"); process.chdir("C:\\Program Files\\7-Zip\\"); let clicommand = "7z a Files.7z " + __dirname + "\\ *.* -r";

我有以下js代码,它应该将当前目录中的所有文件添加到7z存档中:

"use strict";
const { execSync } = require("child_process");
process.chdir("C:\\Program Files\\7-Zip\\");

let clicommand = "7z a Files.7z " + __dirname + "\\ *.* -r";

execSync(clicommand, (error) => {
  if (error) {
    console.log(`error: ${error.message}`);
    return;
  }
});

console.log("Current dir: " + __dirname);
console.log("clicommand : " + clicommand);
如果从VS代码中的终端窗口启动它。 它做了一秒钟左右的事情,然后打印出来:

Current dir: D:\node\node_http_server
clicommand : 7z a Files.7z D:\node\node_http_server\ *.* -r
但在D:\node\node\u http\u服务器中没有创建zip存档。 运行命令

"C:\Program Files\7-Zip\7z.exe" a Files.7z *.* -r 

直接从控制台工作正常,我的错误在哪里?

execSync
不接受回调——它返回命令的stdout。另外,第二个命令缺少
“D:\node\node\u http\u服务器”
。如果在shell中运行完全相同的命令,会发生什么?execSync返回值的内容是什么?我也尝试过exec(),结果相同。第二个命令是什么?在shell中运行它创建了存档。我刚刚检查了C:\Program Files\7-Zip\dir,存档在那里,hmm
execSync
不接受回调--它返回命令的stdout。另外,第二个命令缺少
“D:\node\node\u http\u服务器”
。如果在shell中运行完全相同的命令,会发生什么?execSync返回值的内容是什么?我也尝试过exec(),结果相同。第二个命令是什么?在shell中运行它会创建归档文件。我刚刚检查了C:\Program Files\7-Zip\dir,归档文件在那里,嗯