Where-Object
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.