Điều mà tất cả các câu trả lời này không làm nổi bật là khi so sánh giá trị với $ null, bạn phải đặt $ null ở phía bên trái, nếu không bạn có thể gặp rắc rối khi so sánh với giá trị kiểu tập hợp. Xem: https://github.com/nightroman/PowerShellTraps/blob/master/Basic/Comparison-operators-with-collections/looks-like-object-is-null.ps1
$value = @(1, $null, 2, $null)
if ($value -eq $null) {
Write-Host "$value is $null"
}
Khối trên được thực thi (không may). Điều thú vị hơn nữa là trong Powershell, giá trị $ có thể là cả $ null và không phải $ null:
$value = @(1, $null, 2, $null)
if (($value -eq $null) -and ($value -ne $null)) {
Write-Host "$value is both $null and not $null"
}
Vì vậy, điều quan trọng là phải đặt $ null ở phía bên trái để làm cho các so sánh này hoạt động với các bộ sưu tập:
$value = @(1, $null, 2, $null)
if (($null -eq $value) -and ($null -ne $value)) {
Write-Host "$value is both $null and not $null"
}
Tôi đoán điều này cho thấy một lần nữa sức mạnh của Powershell!