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-처리
'Powershell > @우주인' 카테고리의 다른 글
파워쉘에게 할당된 메모리 변경 (1) | 2010.12.28 |
---|---|
[MSSQL]WMI for SQL Management(3)-SqlServerAlias (0) | 2010.10.26 |
플랫폼 구분(64/32bit) (0) | 2010.10.05 |
PowerShell Debug(Set-PSDebug) (0) | 2010.10.05 |
[MSSQL]WMI for SQL Management(2)-ClientNetworkProtocol (0) | 2010.10.05 |