Substituições para E comercial e duplo-comercial no PowerShell

19

No processador CMD nativo do Windows, você pode usar & em comandos de string juntos para que um seja executado imediatamente após o outro. Um && executará o segundo comando apenas se o primeiro concluir sem erros.

Isto é diferente dos comandos de tubulação junto com | em que a saída do primeiro comando não é enviada para o segundo comando, os comandos são simplesmente executados um após o outro e a saída para cada é enviado para o seu lugar habitual.

No entanto, recebo um erro quando tento usar & ou && no PowerShell. Existem funções semelhantes disponíveis no PowerShell ou esse recurso está sendo suspenso?

    
por Iszi 20.08.2012 / 22:43

2 respostas

28

O operador & no PowerShell é apenas o ; ou ponto e vírgula.

O operador && no PowerShell deve ser executado como uma instrução if .

Command ; if($?) {Command}

    
por 20.08.2012 / 23:04
1

Experimente esta função, que pode ser usada da mesma maneira:

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

Agora, && pode ser substituído por ; aa , o que, embora ainda não seja perfeito, é muito mais sucinto.

cls && build

torna-se

cls; aa build
    
por 06.06.2014 / 23:01

Tags