Crea un filtro che determina gli oggetti che verranno passati attraverso una pipeline di comandi.

Sintassi

Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Where-Object seleziona oggetti dal set di oggetti che gli sono stati passati. Utilizza un blocco di script come filtro e lo valuta per ciascun oggetto. Se il risultato della valutazione è True, l'oggetto viene restituito. Se il risultato della valutazione non è True, l'oggetto viene ignorato.

Parametri

-FilterScript <scriptblock>

Specifica il blocco di script utilizzato per filtrare gli oggetti. Racchiudere il blocco di script tra parentesi graffe ({}).

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-InputObject <psobject>

Specifica gli oggetti da filtrare. È inoltre possibile reindirizzare gli oggetti a Where-Object.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByValue)

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.Management.Automation.PSObject

È possibile reindirizzare gli oggetti da filtrare a Where-Object.

Output

Esempio 1

C:\PS>get-service | where-object {$_.Status -eq "Stopped"}

Descrizione
-----------
Tramite questo comando viene ottenuto un elenco di tutti i servizi attualmente arrestati. Il simbolo "$" rappresenta ciascun oggetto passato al cmdlet Where-Object.






Esempio 2

C:\PS>get-process | where-object {$_.workingset -gt 25000*1024}

Descrizione
-----------
Con questo comando vengono elencati i processi il cui working set è maggiore di 25.000 kilobyte (KB). Poiché il valore della proprietà WorkingSet è archiviato in byte, il valore 25.000 viene moltiplicato per 1.024.






Esempio 3

C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" }

Descrizione
-----------
Con questo comando si ottengono i processi con una proprietà ProcessName che inizia con la lettera "p". L'operatore match consente di utilizzare espressioni regolari all'interno di una clausola Where.






Esempio 4

C:\PS>get-process -name svchost | where-object {$True}

Descrizione
-----------
Con questo comando vengono elencati tutti i processi denominati "svchost". 

Il cmdlet Where-Object valuta il blocco di script, che in genere include un riferimento all'oggetto presente nella pipeline ($_), quindi esegue il cast dei risultati in un tipo booleano: True o False. Se il risultato è True, l'oggetto viene restituito. In caso contrario, viene ignorato. 

In questo caso, poiché il blocco di script restituisce True, vengono restituiti tutti gli oggetti.









Argomenti della Guida