PowerShell의 앰퍼샌드 및 이중 앰퍼샌드 대체

PowerShell의 앰퍼샌드 및 이중 앰퍼샌드 대체

&Windows의 기본 CMD 프로세서에서는 하나가 다른 명령 다음에 즉시 실행되도록 명령을 함께 문자열로 묶는 데 사용할 수 있습니다 . A는 &&첫 번째 명령이 오류 없이 완료된 경우에만 두 번째 명령을 실행합니다.

|이는 첫 번째 명령의 출력 과 함께 파이핑 명령과 다릅니다.아니다두 번째 명령으로 전송되면 명령은 단순히 차례로 실행되고 각 명령에 대한 출력은 일반적인 위치로 전송됩니다.

그러나 PowerShell에서 &또는를 사용하려고 하면 오류가 발생합니다 . &&PowerShell에서 사용할 수 있는 유사한 기능이 있습니까? 아니면 이 기능이 더 이상 사용되지 않습니까?

답변1

&PowerShell의 연산자는 또는 ;세미콜론입니다.

PowerShell의 연산자 &&는 문으로 실행되어야 합니다 if.

Command ; if($?) {Command}

예:

tsc ; if($?) {node dist/run.js}

답변2

대략 같은 방식으로 사용할 수 있는 이 기능을 사용해 보세요.

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

이제 &&로 대체될 수 있습니다 ; aa. 아직 완벽하지는 않지만 훨씬 더 간결합니다.

cls && build

된다

cls; aa build

답변3

업데이트: 이제 Powershell 7을 사용하여 기본적으로 수행할 수 있습니다.

Write-Output 'First' && Write-Output 'Second'

첫번째
두번째

그러나 첫 번째 명령이 실패하면(여기서는 참고 Write-Error):

Write-Error 'Bad' && Write-Output 'Second'

나쁜

원천 :https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipeline_chain_operators?view=powershell-7.3

관련 정보