【问题标题】:How to compare the contents of two string objects in PowerShell如何在 PowerShell 中比较两个字符串对象的内容
【发布时间】:2013-09-17 07:12:09
【问题描述】:

在 PowerShell 中,我有一个字符串对象数组,并且我有一个包含字符串对象的对象。在 Java 中,您可以执行 .equals(aObject) 来测试字符串值是否匹配,而执行 == 来测试两个对象是否引用内存中的相同位置。

如何在 powershell 中运行等效的 .equals(aObject)

我正在这样做:

$arrayOfStrings[0].Title -matches $myObject.item(0).Title

它们都具有完全相同的字符串值,但我得到的返回值为 false。有什么建议吗?

【问题讨论】:

    标签: powershell string-comparison


    【解决方案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 方法列表如下。

    【讨论】:

      猜你喜欢
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 2020-12-17
      • 2011-01-26
      • 2017-03-28
      • 1970-01-01
      相关资源
      最近更新 更多