Por que você considera seu comando deselegante? Se você está apenas após um código mais conciso, isso pode ser melhor na Revisão de código.
Por acaso, não acho que esse comando funcione.
Se você quiser usar -like
, adicione curingas:
gci | ? {$_.Name -like "*foo*" -and $_.Name -like "*bar*"}
Se você não quiser usar curingas, use -match
:
gci | ? {$_.Name -match "foo" -and $_.Name -match "bar"}
Existem muitas maneiras de esfolar um gato
gci *foo* | ? {$_.Name -in (gci *bar*).Name}
Acho que um código mais elegante é subjetivo e depende do seu estilo de codificação. Eu pessoalmente prefiro sua linha de código, pois ela não é nem um pouco críptica, e é bastante compacta para o que ela faz.