Búsqueda de sitios web

Aprendizaje del operador no igual de PowerShell con ejemplos


Además de ser una herramienta de línea de comandos, PowerShell es un lenguaje de programación de Microsoft que le permite controlar y automatizar sus sistemas. PowerShell utiliza una sintaxis diferente para sus operadores que la mayoría de los lenguajes de programación.

Pero, una vez que comprenda la sintaxis del operador de PowerShell, descubrirá que no es difícil de usar. Uno de los operadores más comunes que utilizará en PowerShell es el operador No igual (-ne). Este operador le permite probar si dos valores no son iguales entre sí.

En este artículo, aprenderá sobre el operador PowerShell Not Equal y cómo usarlo con ejemplos.

Requisitos previos

Este tutorial será una demostración práctica. Si desea seguir las instrucciones, asegúrese de tener un sistema con PowerShell instalado. Este tutorial utiliza Windows 10 y PowerShell 7.

Uso del operador no igual de PowerShell (conceptos básicos)

En esencia, el operador No igual de PowerShell (-ne) determina si el valor de dos objetos no es igual y devuelve un valor booleano según el resultado. Si los valores no son iguales, el resultado es True; de lo contrario, el resultado es False.

Pero, ¿cómo y cuándo se utiliza el operador PowerShell Not Equal? Las secciones siguientes le enseñarán los conceptos básicos de PowerShell Not Equal.

Comparando variables

Uno de los usos más comunes del operador No igual de PowerShell es comparar dos variables. Por ejemplo, supongamos que tiene dos variables, $a y $b, y desea ver si son iguales. La sintaxis de comparación es la siguiente:

$a -ne $b

Si los valores de $a y $b no son iguales, entonces esta comparación devolverá True. De lo contrario, devolverá Falso.

1. Ejecute los siguientes comandos en su consola PowerShell para crear las variables que usará como ejemplos. Las variables $a, $b, $c y $d representan valores diferentes. Puede comparar cada uno de estos valores para comprobar si son iguales o no.

Asigne $c y $d el mismo valor para ver cómo funciona el operador No igual de PowerShell con valores iguales.

$a = 1
$b = 2
$c = 3
$d = 3

2. Ahora, realice la comparación PowerShell Not Equal para ver si los valores de $a y $b no son iguales.

$a -ne $b

El resultado devuelve True porque el valor de $a es 1 y $b es 2, que no son iguales.

3. Ahora compare las variables $c y $d para ver si tampoco son iguales.

$c -ne $d

Verá un resultado de salida Falso, como se muestra en la imagen a continuación, ya que los valores de $c y $d son iguales (3=3).

Comparando valores

Cuando trabaja con PowerShell, no todos los objetos que desea comparar están en variables. En este caso, puede comparar valores directamente con el operador No igual de PowerShell.

Por ejemplo, el siguiente comando compara dos valores directamente utilizando el operador No igual de PowerShell.

5 -ne 3

Verá un retorno de valor Verdadero, como se muestra a continuación, ya que los valores no son iguales.

Por otro lado, comparar valores iguales devolverá False.

5 -ne 5

Eliminar un valor de la matriz

El operador PowerShell Not Equal devuelve un resultado booleano para indicar si dos valores no son iguales. Aparte de esa función, este operador también puede filtrar elementos de una matriz.

Por ejemplo, cree una variable llamada $numbers que contenga una matriz de números del 1 al 5.

# Create an array containing numbers 1 through 5.
$numbers = 1..5
# Display the array
$numbers

A continuación, ejecute el siguiente comando para devolver la matriz excepto un número (4).

$numbers -ne 4

Y ahora puede ver que el comando devolvió todos los números de la matriz excepto el número 4.

Comparando cadenas

Además de los números, también puede aplicar la comparación PowerShell Not Equal en cadenas.

1. Por ejemplo, suponga que tiene dos cadenas, "Hola" y "Mundo". Para determinar si las dos cadenas no son iguales, ejecute el siguiente comando.

"Hello" -ne "World"

El resultado es Verdadero ya que "Hola" no es igual a "Mundo".

2. Ahora compara las cadenas "Hola" y "hola" para ver si son iguales.

"Hello" -ne "hello"

Luego verás que el resultado es Falso porque "Hola" es igual a "hola".

3. El operador PowerShell Not Equal no distingue entre mayúsculas y minúsculas. Como puedes ver en el paso anterior, "Hola" es igual a "hola". Pero si necesita distinguir entre mayúsculas y minúsculas al comparar valores de cadena, sustituya el operador -ne por el operador -cne, lo que significa Distingue entre mayúsculas y minúsculas y no iguales.

"Hello" -cne "hello"

Como resultado, "Hola" y "hola" ya no son iguales según PowerShell.

Uso del operador no igual de PowerShell en el mundo real (ejemplos)

Ahora que comprende el concepto básico del operador PowerShell Not Equal, las siguientes secciones le permitirán experimentar algunos de sus usos en el mundo real.

Estado de los servicios de monitoreo

Un elemento básico de la administración de sistemas Windows es monitorear el estado del servicio del servidor. Esta tarea implica filtrar qué servicios cuyo Estado no se está ejecutando.

Por ejemplo, ejecute el cmdlet Get-Service para mostrar todos los servicios en la máquina local.

Get-Service

Puede ver todos los servicios detenidos y en ejecución en el siguiente resultado.

Ahora, para filtrar solo aquellos servicios que no están Ejecutando, ejecute el siguiente comando y aplique el operador -ne de la siguiente manera.

Get-Service | Where-Object {$_.Status -ne "Running"}

Como puede ver a continuación, la columna Estado muestra solo los servicios detenidos después de aplicar la comparación de PowerShell no igual.

Asimismo, ejecute el siguiente comando para devolver los servicios cuyo estado no está detenido.

Get-Service | Where-Object {$_.Status -ne "Stopped"}

Esta vez, sólo verás los servicios que se están ejecutando.

Combinando PowerShell no es igual con el operador AND

Además de realizar una comparación 1:1, puede combinar la condición PowerShell Not Equal con otro operador de comparación, como -eq (igual), utilizando el operador -and. Este método es útil cuando el objeto que está comparando debe cumplir múltiples condiciones.

Por ejemplo, monitorear los servicios del servidor generalmente implica garantizar que todos los servicios automáticos deben estar ejecutándose. Ejecute el siguiente comando para enumerar todos los servicios cuyo estado no se está ejecutando y cuyo StartType es automático. En este ejemplo, el valor del objeto debe cumplir todas las condiciones.

Get-Service | 
Where-Object {$_.Status -ne "Running" -and $_.StartType -eq "Automatic"} |
Select-Object Status,StartType,Name

Ahora podrás ver los servicios automáticos que no se están ejecutando, lo que puede ayudarte a decidir qué acciones debes realizar.

Agregar lógica condicional If/Else

También puede utilizar el operador No igual de PowerShell dentro de las declaraciones condicionales, como la declaración if/else.

Por ejemplo, un servicio debe estar ejecutándose en la mayoría de los casos si su valor StartType es Automático. El siguiente script obtiene todos los servicios, verifica qué servicios automáticos no se están ejecutando y ejecuta las acciones correctivas para mostrar un mensaje e iniciar el servicio.

Nota: La línea Start-Service $_.Name está comentada y no se ejecutará. Descomente esta línea si desea ejecutar el comando.

Copie el siguiente código y ejecútelo en PowerShell.

Get-Service -ErrorAction SilentlyContinue | ForEach-Object {
    if ($_.Status -ne 'Running' -and $_.StartType -eq 'Automatic') {
        "The service [$($_.Name)] StartType is [$($_.StartType)] but its current Status is [$($_.Status)]"
        # Start-Service $_.Name
    }
}

El resultado le muestra qué servicios automáticos no se están ejecutando.

Conclusión

En este artículo, aprendió sobre el operador PowerShell Not Equal. También aprendiste a usarlo con ejemplos. En este punto, debería tener una buena comprensión de cómo funciona.

Con este nuevo conocimiento, ahora puede utilizar el operador No igual en sus scripts de PowerShell para probar las condiciones. Sin embargo, tenga en cuenta que también hay disponibles otros operadores de comparación. Es posible que desee combinar varios operadores para probar condiciones más complejas.

Artículos relacionados