一次检查 2 个变量是否为 null 或空的简单方法

simple way to check 2 variables at once for null or empty

提问人:Darren 提问时间:11/14/2023 更新时间:11/14/2023 访问量:50

问:

寻找一种简单的方法(最好是一行代码)来检查 2 个变量中的任何一个是否为空,如下所示,但是,这不起作用......

if ([string]::isnullorempty(var1,var2)) {"empty"} else {"not empty"}
Powershell null

评论

1赞 mclayton 11/14/2023
有什么理由你不能只使用吗?if( [string]::IsNullOrEmpty($var1) -or [string]::IsNullOrEmpty($var2) ) ...
1赞 iRon 11/14/2023
if ('' -in [String[]]($var1, $var2)) { 'IsNullOrEmpty' }
0赞 Darren 11/14/2023
感谢您的评论和建议 - 这些都很好用......

答:

0赞 Walter Mitty 11/14/2023 #1

not 运算符会将字符串转换为布尔值。试试这个:

if (!$var1 -or !$var2) {"empty"} else {"not empty"}

我认为如果 $var 1 为 null 或空,!$var 1 将返回 $true。

评论

2赞 mclayton 11/14/2023
为了匹配原始语义的确切语义,您可能需要,因为在极端情况下,布尔值和 -> 但 -> 。虽然我猜在 OP 的上下文中它不太可能是一个实际问题:-)...if (!([string]$var1) -or !([string]$var2)) {"empty"} else {"not empty"}$var1$false!$false$true!([string]$false)$false