Powershell/@우주인

PowerShell 에서 NULL 처리

알 수 없는 사용자 2010. 10. 26. 17:28

파워쉘에서 NULL 비교는 파라미터 타입을 지정해 주지 않았을경우에는 정상적으로 동작한다.
그러나 파라미터값을 [string]으로 지정해 줬을 경우에는 비교에 문제가 있을 수 있다

function checkNull([string]$a, $b)

{

    if ($a -eq $null) { Write-Host "a is null" } else { write-Host "a is not null" }

    if ($a -eq [String]::Empty) { Write-Host "a is null" } else { write-Host "a is not null" }

    if (!$a) { Write-Host "a is null" } else { write-Host "a is not null" }

    if ($b -eq $null) { Write-Host "b is null" } else { Write-Host "b is not null" }

}



위의 함수의 결과값은 아래와 같다.

Space>checkNull $null $null
a is not null
a is null
a is null
b is null

결론적으로 string으로 지정된 파라미터를 NULL과 비교할때는 ($a -eq $null) 과 같은 표현은 쓰지 않는 것이 좋다.


원본: http://vstarmanv.tistory.com/entry/PowerShell-에서-NULL-처리