powershell - 在powershell中对空字符串应用拆分后,相等运算符不产生True/False输出的原因是什么?

标签 powershell

当我在一个空字符串上应用split,然后应用相等比较时,我没有得到$ True或$ False(见下文)。

更奇怪的是,当我将拆分结果与空字符串进行比较时,看到一些不可见的输出,而当我将拆分结果与非空字符串进行比较时,则看不到任何输出(请参见下文)。

PS > ''.split(',') -eq ''

PS > ''.split(',') -eq 'a'
PS > ''.split(',') -ne ''
PS > ''.split(',') -ne 'a'

PS >

这种奇怪行为的原因是什么?

最佳答案

即使将分割操作应用于空字符串,其结果也会产生一个由1个元素组成的数组。引用SS64 - Comparison Operators将其解释为:

When applied to an array, comparison operators will work as a filter returning all the values which match.



例如,以下@('a','b','c','a') -eq 'a'将返回等于a的2个元素

为了在示例中获得正确的结果,您必须计算返回的元素数,并检查是否有元素。
(''.split(',') -eq '').Count -ge 1 # Is True
(''.split(',') -eq 'a').Count -ge 1 # Is False
(''.split(',') -ne '').Count -ge 1 # Is False
(''.split(',') -ne 'a').Count -ge 1 # Is True

关于powershell - 在powershell中对空字符串应用拆分后,相等运算符不产生True/False输出的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59489334/

相关文章:

windows - 如何从 Windows 上的命令行查看命名管道权限

windows - 创建证书的 New-SelfSignedCertificate 给出拒绝访问

windows - 是否可以在没有管理员权限的情况下安装 .appxbundle(UWP/XAML 应用程序)?

winforms - PowerShell 日历弹出窗口

regex - 使用Powershell匹配文本文件中所有出现的模式

string - 替换文本文件中一行的值

powershell - Azure Powershell 编程登录

excel - 使用 Powershell 将表格附加到 Excel 文件的末尾(最后一行)

powershell - 在 powershell 中异步移动文件

PowerShell,下载 StackOverflow 答案或评论的内容