sourcetip

PowerShell에서 조건을 부정하려면 어떻게 해야 합니까?

fileupload 2023. 5. 3. 21:42
반응형

PowerShell에서 조건을 부정하려면 어떻게 해야 합니까?

PowerShell에서 조건부 테스트를 비활성화하려면 어떻게 해야 합니까?

예를 들어 디렉토리 C를 확인하려는 경우:\코드, 실행할 수 있습니다:

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

또한 파워셸은 C/C++/C*가 아닌 연산자도 허용합니다.

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

저는 C*에 익숙해서 자주 사용합니다.
코드 압축/복원 허용...
또한 더 우아하다고 생각합니다...

만약 당신이 나와 같고 이중 괄호를 싫어한다면, 당신은 함수를 사용할 수 있습니다.

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

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

두 개의 괄호가 마음에 들지 않거나 함수를 작성하고 싶지 않으면 변수를 사용하면 됩니다.

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

언급URL : https://stackoverflow.com/questions/8095638/how-do-i-negate-a-condition-in-powershell

반응형