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!"
}