Выполните команду 'mv', распространенную в Bash, Zsh, PowerShell, CMD - PullRequest
1 голос
/ 06 июня 2019

Я пытаюсь создать CLI, используя node.js, и у меня есть несколько задач, где мне нужно переместить папку из одного места в другое. Поэтому для достижения этого я использовал файл 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)). Как мне этого добиться? Можем ли мы определить тип оболочки и выполнить разные команды?

...