gpt4 book ai didi

powershell - 删除空键 powershell

转载 作者:行者123 更新时间:2023-12-03 00:22:49 25 4
gpt4 key购买 nike

我正在尝试使用以下代码从我的哈希中删除所有为空的键:

foreach ($key in $OUHash.Keys){
if ($($OUHash.Item($key)) -eq $NULL) {
$OUHash.Remove($key)
}
}

这会删除一个空键,但不是全部,它还会给我这个错误消息:

Collection was modified; enumeration operation may not execute.
At C:\AD\Shadow group Sync.ps1:31 char:10
+ foreach ($key in $Hash.Keys){
+ ~~~~
+ CategoryInfo : OperationStopped: (:) [], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException

最佳答案

虽然 Martin 提供的解决方案确实成功地过滤掉了具有空值的项目,但它返回一个 Object 而不是 Hashtable(如果您使用了 [ordered] 属性,则返回 OrderedDictionary)。

尽管可以通过更改 Where-Object(别名 ?)的条件以仅返回具有空值的项目和将生成的对象(因此是括号)通过管道传输到 ForEach-Object 函数(别名 %):

($OuHash.GetEnumerator() | ? { -not $_.Value }) | % { $OuHash.Remove($_.Name) }

另一种非常相似的方法是获取数组对象中的所有哈希表键并将其通过管道传递给 ForEach-Object:

@($OuHash.keys) | % { 
if (-not $OuHash[$_]) { $OuHash.Remove($_) }
}

关于powershell - 删除空键 powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com