Cómo usar múltiples condiciones en PowerShell Where-Object?

Cómo usar múltiples condiciones en PowerShell Where-Object?

En PowerShell, el "Donde Object"Cmdlet se usa para filtrar los objetos o valores de un objeto. El filtro de objeto where comprende condiciones simples o múltiples. El filtro de condición múltiple le permite filtrar los elementos y devolver solo unos pocos que coincidan con estas condiciones.

Para aplicar dónde-Object, se recomienda para abordarlo con otros cmdlets de PowerShell. Además, se pueden definir múltiples condiciones utilizando bloques de script, varios operadores, etc.

Esta publicación demostrará el trabajo y el uso de múltiples condiciones en PowerShell Where-Object.

Cómo usar múltiples condiciones en PowerShell "Where-Object"?

PowerShell proporciona las siguientes tres posibilidades para usar múltiples condiciones en PowerShell:

  • Uso de bloques de scripts y operadores de igualdad.
  • Uso de bloques de script y operadores de contención.
  • Uso de bloques de script, igualdad y operadores coincidentes.

Método 1: Use múltiples condiciones en PowerShell "Where-Object" con bloques de scripts y operadores de igualdad

Un bloque de script comprende un conjunto de múltiples declaraciones encerradas en aparatos ortopédicos rizados. Estos tipos de bloques se pueden unir con el cmdlet where-object utilizando el "-FilscriptParámetro.

Ejemplo

En el siguiente ejemplo, ejerceremos operadores de igualdad con bloques de scripts para usar múltiples condiciones en PowerShell.

Entendamos cómo se crea un bloque de script utilizando la sintaxis mencionada a continuación:

> $ _.Propertyname -parámetro

En la sintaxis anterior, la "ps."¿Es el símbolo utilizado para referirse a una propiedad?. La propiedad y su valor (a buscar) se unen utilizando cualquier operador de igualdad (-gt, -ge, -lt, -le, -eq).

Aquí, utilizaremos un bloque de script para filtrar los procesos basados ​​en el uso de la CPU del proceso y NPM (memoria no apagada utilizada por un proceso). Los procesos que cumplen las siguientes condiciones se filtran utilizando el bloque de script:

  • Tener NPM mayor o igual a 30
  • Tener un uso de CPU mayor a 3000:
> Get-Process | Where -object -filterscript ($ _.Npm -lt 30) -y ($ _.CPU -GT 300)

La salida muestra que solo los procesos que tienen NPM mayor que

Método 2: Use múltiples condiciones en PowerShell "Where-Object" con bloques de scripts y operadores de contención

Los operadores de contención son los tipos de operadores de comparación. Estos operadores son fáciles de entender y leer en comparación con los bloques de script en PowerShell.

La lista de operadores de contención y sus descripciones adecuadas se enumera en la siguiente tabla:

Operador Descripción
"-contiene" El valor en el lado derecho del operador está presente en el grupo de valores en el lado izquierdo.
"-Ccontains" El operando correcto está presente en el grupo de valores presentes a la derecha. El -ccontains es sensible a la caja.
"-Notastins" El valor en el lado derecho del operador no está presente en el lado izquierdo.
"-CnotContains" Este operador funciona de la misma manera que el de las nocontains pero con la sensibilidad de los casos.

Ejemplo

> Get-Service | Where-Object ($ _.StartType -in 'manual') -y ($ _.Status -notContains 'en ejecución')

Según el código anterior:

  • "ps.StartType -in 'manual')"Obtenga los servicios que están en"Manual" modo.
  • "-y"Se usa como concatenador para combinar ambas condiciones.
  • "ps.Status -notContains 'en ejecución')"Obtenga los servicios que no se están ejecutando, lo que significa los servicios que se detienen:

Método 3: Use múltiples condiciones en PowerShell "Where-Object" con el uso de operadores de igualdad y coincidencia

Los operadores coincidentes se utilizan para que coincidan con una condición o patrón especificados de elementos. Estos operadores incluyen "-Match "," -NotMatch ","-Like "y" -NoNOMi".

Ejemplo

Este comando contiene múltiples condiciones basadas en la igualdad y los operadores coincidentes:

> Get Command | Where-Object ($ _.Comandype -eq 'cmdlet') -and ($ _.Nombre -Ol '*import*')

Según este ejemplo:

  • "ps.Comandype -eq 'cmdlet')"Obtenga los comandos iguales a"cmdlet" utilizando el "-ecualización"Operador.
  • "ps.Nombre -Like '*import*')"Obtenga los nombres comenzando con"Importar" utilizando el "-como"Operador:

Eso se trataba de usar múltiples condiciones en PowerShell.

Conclusión

Múltiples condiciones son las que se definen más de dos declaraciones o condiciones. Estas condiciones se usan en PowerShell "Donde Object"Con la combinación de bloques de guiones y declaraciones de comparación. Esta publicación ha proporcionado una guía completa para usar múltiples condiciones en PowerShell.