在PowerShell中查找变量是否为null或包含null变量的数组

aurhwmvo  于 2023-03-23  发布在  Shell
关注(0)|答案(1)|浏览(158)

我试图找出一个变量是否为null是一个包含null变量的数组。
例如,一个简短的表达式,将匹配'false'为以下每一个,但'true'为其他任何:

$nullvariable = $null
$nullvariable1 = @($null)
$nullvariable2 = @($null, $null)
$nullvariable3 = @("1", $null)

上下文:我有一些比较对象调用,我试图避免'无法将参数绑定到参数'ReferenceObject',因为它是null'错误。这里的第一个答案:https://stackoverflow.com/a/45634900/12872270工作,但它不是很清晰/可理解的代码。
剩下的答案使用了一个更易读的'if'语句,但在我的测试中,Compare-Object不仅会因为$null而失败,而且还会因为任何包含 * null条目的数组而失败-使用'if'的示例没有考虑到这一点。
检测包含null变量的数组本身似乎是一个单独的问题,因此有了这个问题。

sigwle7e

sigwle7e1#

由于包含运算符可以对标量和集合进行计算,在这种情况下,您可以对任何变量使用-contains-in,结果将是$true

$null -in $nullvariable         # True
$nullvariable1 -contains $null  # True
$null -in $nullvariable2        # True
$nullvariable3 -contains $null  # True

相关问题