[windows] PowerShell에서 조건을 어떻게 무시합니까?

PowerShell에서 조건부 테스트를 어떻게 무효화합니까?

예를 들어 C : \ Code 디렉토리를 확인하려면 다음을 실행할 수 있습니다.

if (Test-Path C:\Code){
  write "it exists!"
}

해당 조건을 무효화하는 방법이 있습니까?

if (Not (Test-Path C:\Code)){
  write "it doesn't exist!"
}

해결 방법 :

if (Test-Path C:\Code){
}
else {
  write "it doesn't exist"
}

이것은 잘 작동하지만 인라인을 선호합니다.



답변

당신은 거의 그것을 가졌습니다 Not. 그것은해야한다:

if (-Not (Test-Path C:\Code)) {
    write "it doesn't exist!"
} 

당신은 또한 사용할 수 있습니다 !:if (!(Test-Path C:\Code)){}

재미를 위해 비트 단위 독점을 사용할 수도 있지만 가장 읽기 쉽고 이해할 수있는 방법은 아닙니다.

if ((test-path C:\code) -bxor 1) {write "it doesn't exist!"}


답변

나와 같고 이중 괄호를 싫어하는 경우 함수를 사용할 수 있습니다

function not ($cm, $pm) {
  if (& $cm $pm) {0} else {1}
}

if (not Test-Path C:\Code) {'it does not exist!'}


답변

Powershell은 또한 C / C ++ / C * 연산자를 허용하지 않습니다

if (! (Test-Path C : \ Code)) {쓰기 “존재하지 않습니다!” }

나는 C *에 익숙하기 때문에 자주 사용합니다 …
코드 압축 / 단순화를 허용합니다 …
또한 더 우아합니다 …


답변

이중 괄호가 마음에 들지 않거나 함수를 작성하지 않으려면 변수를 사용하면됩니다.

$path = Test-Path C:\Code
if (!$path) {
    write "it doesn't exist!"
}


답변