Ответ 1
Вы хотите сделать $arrayOfString[0].Title -eq $myPbiject.item(0).Title
-match
- для соответствия регулярных выражений (второй аргумент представляет собой регулярное выражение)
В PowerShell у меня есть массив строковых объектов, и у меня есть объект, который содержит строковые объекты. В Java вы можете выполнить .equals(aObject)
, чтобы проверить, соответствуют ли строковые значения, а при выполнении теста ==
, если два объекта ссылаются на одно и то же место в памяти.
Как запустить эквивалентный .equals(aObject)
в powershell?
Я делаю это:
$arrayOfStrings[0].Title -matches $myObject.item(0).Title
Оба они имеют одинаковые строковые значения, но я получаю возвращаемое значение false. Любые предложения?
Вы хотите сделать $arrayOfString[0].Title -eq $myPbiject.item(0).Title
-match
- для соответствия регулярных выражений (второй аргумент представляет собой регулярное выражение)
Вы можете сделать это двумя разными способами.
Вариант 1: Оператор -eq
>$a = "is"
>$b = "fission"
>$c = "is"
>$a -eq $c
True
>$a -eq $b
False
Вариант 2: метод .Equals()
объекта string
. Поскольку строки в PowerShell являются объектами .Net System.String
, любой метод этого объекта можно вызвать напрямую.
>$a.equals($b)
False
>$a.equals($c)
True
>$a|get-member -membertype method
Ниже перечислены методы System.String
.