25

В родном CMD-процессоре Windows вы можете использовать & для объединения команд, чтобы одна выполнялась сразу за другой. && выполнит вторую команду, только если первая завершится без ошибок.

Это отличается от передачи команд вместе с | поскольку выходные данные первой команды не отправляются второй команде, команды просто запускаются одна за другой, и выходные данные каждой из них отправляются на свое обычное место.

Тем не менее я получаю сообщение об ошибке при попытке использовать & или && в PowerShell. Существуют ли похожие функции в PowerShell или эта функция устарела?

2 ответа2

35

Оператор & в PowerShell - это просто ; или точка с запятой.

Оператор && в PowerShell должен выполняться как оператор if .

Command ; if($?) {Command}

1

Попробуйте эту функцию, которую можно использовать примерно так же:

function aa() {
    if($?) {
        $command = [string]::join(' ', $args[1..99])
        & $args[0] $command
    }
}

Теперь && можно заменить на ; aa , который, хотя все еще не совершенен, является намного более кратким.

cls && build

становится

cls; aa build

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .