Búsqueda de sitios web

PowerShell donde-objeto no es igual [Con ejemplos]


PowerShell Where-Object le permite filtrar objetos según sus propiedades y valores. Veremos cómo utilizar el operador -ne con PowerShell Where-Object. Veremos un ejemplo completo de “PowerShell donde-objeto no es igual“.

En PowerShell, el cmdlet Where-Object se usa para filtrar objetos según sus propiedades, y el operador -ne significa "no igual". Para filtrar objetos donde una propiedad específica no equivale a un valor determinado, puede usar un comando como Get-Process | Where-Object { $_.ProcessName -ne 'svchost' }, que devolverá todos los procesos cuyo nombre no sea 'svchost'. Esta combinación permite un filtrado preciso en scripts y operaciones de línea de comandos.

Objeto donde PowerShell no es igual

El cmdlet Where-Object en PowerShell le permite seleccionar objetos que tienen valores de propiedad particulares de una colección de objetos. Por ejemplo, si tiene una lista de archivos y desea filtrar los archivos que no son de un tipo determinado, Where-Object se puede utilizar para hacer precisamente eso.

El operador no igual (-ne)

El operador no igual -ne en PowerShell se usa para comparar dos valores o expresiones y determinar si no son iguales. Cuando se utiliza con Where-Object, filtra los objetos que no coinciden con la condición especificada.

Ejemplos de objeto Where de PowerShell con -ne

Veamos algunos ejemplos prácticos para comprender cómo Where-Object y -ne funcionan juntos en PowerShell. Veamos algunos ejemplos de objeto dónde de PowerShell no igual.

Ejemplo 1: filtrado de objetos de proceso

Imagine que desea obtener una lista de todos los procesos que se ejecutan en su sistema y que no se denominan "svchost". Puede utilizar el operador Donde-Objeto no igual de PowerShell.

Get-Process | Where-Object { $_.ProcessName -ne 'svchost' }

Este comando ejecuta todos los procesos en su sistema y utiliza Where-Object para filtrar los procesos en los que ProcessName no es igual a "svchost".

Puede ver el resultado en la captura de pantalla a continuación después de ejecutar el script de PowerShell usando el código VS.

Ejemplo 2: excluir archivos específicos de una lista

Si tiene una lista de archivos y desea excluir archivos con una determinada extensión, por ejemplo, archivos .log , puede usar el siguiente comando PowerShell Where-Object con el operador -ne:

Get-ChildItem | Where-Object { $_.Extension -ne '.log' }

Este comando enumera todos los elementos del directorio actual, pero excluye los archivos que terminan con la extensión .log .

Ejemplo 3: filtrado de objetos personalizados

Supongamos que tiene un objeto personalizado con una propiedad "Estado" y desea filtrar todos los objetos que no tienen un estado "Activo":

# Define a collection of custom objects with a 'Status' property
$customObjects = @(
    [PSCustomObject]@{Name='Object1'; Status='Inactive'},
    [PSCustomObject]@{Name='Object2'; Status='Active'},
    [PSCustomObject]@{Name='Object3'; Status='Pending'},
    [PSCustomObject]@{Name='Object4'; Status='Active'},
    [PSCustomObject]@{Name='Object5'; Status='Inactive'}
)

# Filter the objects where Status is not 'Active'
$filteredObjects = $customObjects | Where-Object { $_.Status -ne 'Active' }

# Output the filtered objects
$filteredObjects

Aquí, $customObjects es una variable que contiene una colección de objetos. El cmdlet Where-Object filtra cualquier objeto cuya propiedad Status no sea "Activo".

Aquí está el resultado en la siguiente captura de pantalla:

Uso avanzado con -ne

El operador -ne también se puede utilizar con expresiones más complejas y múltiples condiciones. Por ejemplo, si desea filtrar servicios que no se están ejecutando y que no están configurados para iniciarse automáticamente:

Get-Service | Where-Object { $_.Status -ne 'Running' -and $_.StartType -ne 'Automatic' }

Este comando obtiene todos los servicios y filtra aquellos que no se están ejecutando y no están configurados para iniciarse automáticamente.

Conclusión

El cmdlet Where-Object combinado con el operador -ne es muy útil en PowerShell para filtrar objetos que no coinciden con una condición determinada.

En este tutorial de PowerShell, he explicado cómo usar el operador -ne con el objeto dónde de PowerShell con ejemplos.

Artículos relacionados