Na sua linha Get-ChildItem -Recurse *.*
, você está especificando que deseja todos os arquivos com qualquer extensão, porque *.*
está vinculado ao parâmetro -Filter
.
Para obter todos os arquivos começando com o caminho abc_ * e sempre com o mesmo caminho relativo, você pode fazer algo parecido com isto: Get-ChildItem -Recurse | Where-Object {$_.FullName -like 'abc_*:\AAA\SDK\Settings\foo.settings.xml'} | Select-String ...
No entanto, dado que cada arquivo foo.settings.xml está no mesmo diretório relativo, isso parece relativamente ineficiente, assumindo um grande número de subdiretórios em cada abc_*
dir. Uma solução melhor neste caso seria algo como:
(onde $ Path é o caminho da raiz para o local com todos os diretórios abc_ *)
Get-ChildItem $Path -Filter abc_* | Foreach-Object {Select-String -Path "$($_.FullName)\AAA\SDK\Settings\foo.settings.xml" -Pattern "BAR.*"}