如何在 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 中比较两个字符串对象的内容的主要内容,如果未能解决你的问题,请参考以下文章

在powershell中快速比较两个大的csv(行和列)

java中如何判断两个变量相等

在 Powershell 中,如何通过提供名称作为 $var 来设置环境变量?

js 如何比较两个对象相等

Java中怎么比较两个字符串是不是相等?

JS 如何比较时间大小?