1
PowerShell에서 Switch 문을 테스트하는 간단한 코드를 사용하려고합니다. Switch 문을 통해 처리되는 조건 중 하나에 속하지 않는 조건에 대해 올바른 스크립트 블록을 실행하지 않습니다. 예를 들어스위치가 PowerShell에서 올바른 결과를 제공하지 않음
$Age = Read-Host "Age"
Switch ($Age)
{
{ (($_ -gt 0) -and ($_ -le 25)) } { Write-Host "You are too young" }
{ (($_ -gt 25) -and ($_ -le 50)) } { Write-Host "You are still young" }
{ (($_ -gt 50) -and ($_ -le 75)) } { Write-Host "You are Closer to your death" }
{ (($_ -gt 75) -and ($_ -le 99)) } { Write-Host "I am surprised you are still alive" }
Default { "Invalid age" }
}
: 당신이 입력 -12 110 $Age
매개 변수의 값으로는 기본 블록 (잘못된 나이를) 실행해야하지만 첫 번째 조건을 실행합니다.
Age: -12
You are too young
Age: 110
You are too young
그러나 0-99 사이의 다른 값은 완벽하게 작동합니다.
Age: 12
You are too young
Age: 30
You are still young
Age: 55
You are Closer to your death
Age: 88
I am surprised you are still alive
누군가가 여기에 무슨 문제가 있다고 제안 할 수 있습니까?
또 다른 방법은'($ _ -gt 0)'순서를 교환하는 것입니다 ->'(0 -lt $ _)', 암시 적 캐스팅은 오른쪽에있는 것을 왼쪽에 일치시키는 경향이 있으므로 왼쪽에 숫자를 넣으십시오. – TessellatingHeckler
와우 !! 우수한. 그건 완벽하게 작동합니다. 데이터 유형 문제를 지적 해 주셔서 감사합니다. 나는 그것이 그런 식으로 작동 할 것이라고는 생각하지 못했습니다. – SavindraSingh