반응형
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
반응형
'sourcetip' 카테고리의 다른 글
python에서 람다를 이해하고 여러 인수를 전달하는 방법 (0) | 2023.05.08 |
---|---|
포스트그레스의 행 번호 선택 (0) | 2023.05.03 |
텍스트 블록 스택을 사용하는 대신 문자열 연결 (0) | 2023.05.03 |
텍스트 상자의 워터마크/힌트/자리 표시자 텍스트? (0) | 2023.05.03 |
이클립스 유로파, 헬리오스, 갈릴레오의 차이 (0) | 2023.05.03 |