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


28

Windows의 기본 CMD 프로세서에서 &명령을 함께 연결하여 하나를 즉시 실행할 수 있습니다 . A &&는 첫 번째 명령이 오류없이 완료된 경우에만 두 번째 명령을 실행합니다.

이것은 |첫 번째 명령의 출력이 두 번째 명령 으로 전송 되지 않고 명령이 단순히 하나씩 실행되고 각 출력이 일반적인 위치로 전송 된다는 점 에서 파이핑 명령과 다릅니다 .

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


3
이것은 도움이 될 수 있습니다 : Bash의 && 및 || 운영자?
Gilles 'SO- 악마 중지'

흥미로운 질문은 powershell의 메타 프로그래밍을 사용하여이 기능을 제공 할 수 있는지입니다.&&
soandos

답변:


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

1
왜 당신이 사용 args[0]하지 않는 비 문학적 이유 function aa ($cmd)?
ruffin

이것은 명령을 호출하는 취성 방법입니다. 스크립트 블록 을 사용 하여 명령을 전달하고 ., not 을 사용 하여 명령을 호출 &하십시오.
mklement0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.