comment utiliser les instructions "if" dans le pipeline

Je suis en train d'utiliser if à l'intérieur d'un pipeline.

Je sais qu'il y a where (alias ?) de filtre, mais si je veux activer un filtre que si une certaine condition est remplie?

Je veux dire, par exemple:

obtenir quelque chose de l' | ? {$_.quelqu'un -eq 'somespecific'} | format-table 

Comment utiliser if l'intérieur de la canalisation pour changer le filtre on/off? Est-il possible? Est-il judicieux?

Grâce

MODIFIÉ pour clarifier

Sans pipeline, il devrait ressembler à ceci:

if($filtre) { 
obtenir quelque chose de l' | ? {$_.quelqu'un -eq 'somespecific'} 
} 
else { 
obtenir quelque chose 
} 

MODIFIER après la RÉPONSE du riknik

Exemple stupide montrant ce que je cherchais. Vous avez une table dénormalisée de données stockée dans une variable $data et vous souhaitez effectuer une sorte de "drill-down" filtrage des données:

fonction datafilter { 
param([switch]$ancêtre, 
[switch]$parent, 
[switch]$enfant, 
[string]$myancestor, 
[string]$myparent, 
[string]$mychild, 
[array]$data=[]) 

$data | 
? { (!$ancêtre) -ou ($_.ancêtre -match $myancestor) } | 
? { (!$parent) ou ($_.parent -match $myparent) } | 
? { (!$l'enfant) ou ($_.enfant -match $mychild) } | 

} 

Par exemple, si je veux filtrer par une mère seule:

datafilter -parent -myparent 'myparent' -data $mydata

C'est très élégant, performant et simple à exploiter ?. Essayez de faire la même chose en utilisant if et vous comprendrez ce que je veux dire.

source d'informationauteur Emiliano Poggi