¿está luchando con la comprensión de los operadores de comparación de PowerShell como eq
, ne
, ceq
y cne
. Si es así, siga leyendo.
viniendo de un fondo de desarrollo de software la primera instancia que tenía un » Huh?»el momento fue cuando vi por primera vez los operadores de comparación de PowerShell eq
, ceq
, cne
, etc., Todos los demás idiomas tienen operadores de comparación, pero no como PowerShell. Yo estaba acostumbrado a ==
y <>
.
la sintaxis no solo se ve completamente diferente a su lenguaje de programación típico, sino que también se comporta de manera diferente cuando se comparan colecciones de valores.
es algo que realmente me colgó cuando aprendí sobre PowerShell, pero ahora parece ese viejo adagio de la cerveza; es un gusto adquirido.,
repasemos brevemente qué es un operador de comparación si no está familiarizado y profundicemos en los matices que PowerShell introduce. En poco tiempo, podrá utilizar operadores en sus scripts de PowerShell sin problemas.
como mencioné, todos los lenguajes de programación/scripting tienen operadores de comparación. En su sentido más básico, los operadores de comparación son necesarios para evaluar cómo se comparan las cosas diferentes con otras cosas. Se utilizan para tomar dos objetos y ver cuál es la diferencia (si hay alguna) entre esos dos objetos.,
en el caso de PowerShell, los operadores también se pueden usar para encontrar elementos dentro de colecciones de valores.
para esta publicación, voy a repasar los operadores de igualdad y cómo los usa PowerShell. Estos son eq
y ne
con sus contrapartes sensibles ceq
y cne
. Para obtener una lista completa, puede saltar sobre el sitio de Technet o simplemente usar Get-Help about_comparison_operators
en la consola de Powershell.,
PowerShell-EQ y-CEQ
Si alguna vez necesita ver si un objeto es igual a otro, debe usar los operadores eq
(no distingue entre mayúsculas y minúsculas) o ceq
(distingue entre mayúsculas y minúsculas). Estos operadores prueban el valor de cada entidad con la que desea comparar.
Cuando empecé a aprender PowerShell, constantemente hacía algo como esto
$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}
pronto estarás lo suficientemente golpeado como para no hacer eso. El signo =
es un operador de asignación, no un operador de comparación., No puede usar el signo =
para comparar un valor con otro.
la forma correcta de hacer esto es definir el valor a verificar en el lado izquierdo de la expresión y usar el operador eq
. Aquí hay un ejemplo de los operadores eq
y ceq
y cómo se usan.,
Notice how eq
returned a boolean True
value when comparing our variable against adam
but ceq
returned a boolean False
value? This displays the case sensitivity difference between the two operators.,
esto está muy bien para valores escalares (individuales), pero también puede encontrar todas las instancias de valores particulares utilizando estos operadores también. Por ejemplo, use el operador PowerShell-eq para filtrar elementos en una matriz:
Si tiene una variable con una colección de valores como una matriz puede usar eq
y ceq
para encontrar todas las instancias de valores dentro de la colección.,
observe que encontró todas las instancias del entero 9 con las que intentamos comparar. Uso este práctico método todo el tiempo.
-NE-e -CNE
En el lado opuesto, que tanto han ne
y cne
. Son exactamente lo contrario de eq
y ceq
pero muestran el mismo comportamiento, sólo que al revés. No ponen a prueba la igualdad, ponen a prueba la desigualdad.
espero que esto dé una buena explicación de los operadores de comparación de igualdad. Esto realmente me colgó como un novato y nunca realmente hizo clic para mí hasta que me golpearon en la presentación por mensajes de error. Espero que este post evita la misma paliza que recibí.