如何在 PowerShell 中比较两个字符串对象的内容
Posted
技术标签:
【中文标题】如何在 PowerShell 中比较两个字符串对象的内容【英文标题】:How to compare the contents of two string objects in PowerShell 【发布时间】:2013-09-17 07:12:09 【问题描述】:在 PowerShell 中,我有一个字符串对象数组,并且我有一个包含字符串对象的对象。在 Java 中,您可以执行 .equals(aObject)
来测试字符串值是否匹配,而执行 ==
来测试两个对象是否引用内存中的相同位置。
如何在 powershell 中运行等效的 .equals(aObject)
?
我正在这样做:
$arrayOfStrings[0].Title -matches $myObject.item(0).Title
它们都具有完全相同的字符串值,但我得到的返回值为 false。有什么建议吗?
【问题讨论】:
【参考方案1】:你想做$arrayOfString[0].Title -eq $myPbiject.item(0).Title
-match
用于正则匹配(第二个参数是正则表达式)
【讨论】:
转换为字符串最适合我:$a = cat ./text.txt
$b = cat ./text2.txt
[string]$a -eq [string]$b
返回 false,因为文件不同【参考方案2】:
您可以通过两种不同的方式进行操作。
选项 1:-eq
运算符
>$a = "is"
>$b = "fission"
>$c = "is"
>$a -eq $c
True
>$a -eq $b
False
选项 2:string
对象的 .Equals()
方法。因为 PowerShell 中的字符串是 .Net System.String
对象,所以可以直接调用该对象的任何方法。
>$a.equals($b)
False
>$a.equals($c)
True
>$a|get-member -membertype method
System.String
方法列表如下。
【讨论】:
以上是关于如何在 PowerShell 中比较两个字符串对象的内容的主要内容,如果未能解决你的问题,请参考以下文章