执行Bash,Zsh,PowerShell,CMD中常见的'mv'命令

时间:2019-06-06 11:05:35

标签: node.js bash powershell cmd zsh

我正在尝试使用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)中)。我该如何实现?我们可以检测外壳类型并执行不同的命令吗?

0 个答案:

没有答案