检查数组中的空值

Check for empty value in Array

如何检查哈希表中的空值,并列出项目名称?

我可以 if ($Vars.ContainsValue($null)) 但这并没有让我得到具有 $null

的项目
    $Vars = @{

    1     = "CustomerID";
    2     = "DepartmentID";
    3     = "Environment";
    4     = "JoinDomain";
    5     = ""

} 

如果我做 foreach ($var in $vars) 我得到整个哈希表?

首先这不是array,因为它们写成@('element1', 'element2')。这涉及一个 HashTable,表示为 @{} 并且通过 GetEnumerator() 方法是 enumerated

在该方法之后,只需使用 key and/or value 属性.

过滤掉您需要的内容即可
$Vars = @{
    1 = "CustomerID";
    2 = "DepartmentID";
    3 = "Environment";
    4 = "JoinDomain";
    5 = ""
}

$VerbosePreference = 'Continue'

$Vars.GetEnumerator() | Where-Object {
    -not $_.Value
} | ForEach-Object {
    Write-Verbose "The key '$($_.Key)' has no value"
    # Other code for handling the key with no value
}