我正在尝试使用node.js创建CLI,我有一些任务需要将文件夹从一个位置移动到另一个位置。为此,我使用了node.js的child_process
。像这样:
const { exec } = require("child_process");
function moveFolder(folder,destination){
exec(
`mv ${folder} ${destination}`,
(error, stdout, stderr) => {
if (error) {
console.log("Move error");
}
console.log("Move success");
}
);
}
当我使用bash终端(git-bash或Linux)执行此代码时,此代码段有效。但是当我使用CMD或PowerShell执行它时,会抛出错误
'mv'无法识别为内部或外部命令。
我知道PowerShell和CMD有一个名为move
的命令来实现这一点,这就是它引发错误的原因。但是,是否有一种方法(库或其他方法)在所有环境中执行这些类型的命令? (在Windows(CMD,PowerShell),Linux(bash,zsh),Mac OS(zsh)中)。我该如何实现?我们可以检测外壳类型并执行不同的命令吗?