texto - Cómo comparar el contenido de dos objetos de cadena en PowerShell
powershell lt eq (2)
En PowerShell tengo una matriz de objetos de cadena y tengo un objeto que contiene objetos de cadena. En Java puede hacer un .equals(aObject)
para probar si los valores de la cadena coinciden, mientras que hacer una ==
prueba si los dos objetos se refieren a la misma ubicación en la memoria.
¿Cómo ejecuto un .equals(aObject)
en powershell?
Estoy haciendo esto:
$arrayOfStrings[0].Title -matches $myObject.item(0).Title
Ambos tienen exactamente los mismos valores de cadena, pero obtengo un valor de retorno de falso. ¿Alguna sugerencia?
Puedes hacerlo de dos maneras diferentes.
Opción 1: el operador -eq
>$a = "is"
>$b = "fission"
>$c = "is"
>$a -eq $c
True
>$a -eq $b
False
Opción 2: El método .Equals()
del objeto de string
. Debido a que las cadenas en PowerShell son objetos .Net System.String
, cualquier método de ese objeto se puede llamar directamente.
>$a.equals($b)
False
>$a.equals($c)
True
>$a|get-member -membertype method
Lista de métodos de System.String
sigue.
Quieres hacer $arrayOfString[0].Title -eq $myPbiject.item(0).Title
-match
es para la coincidencia de -match
regulares (el segundo argumento es una expresión regular)