В вашей строке Get-ChildItem -Recurse *.*
вы указываете, что вы хотите все файлы с любым расширением, потому что *.*
привязка к -Filter
параметру.
Чтобы получить все файлы, начинающиеся с пути abc_ * и всегда с одинаковым относительным путем, вы можете сделать что-то вроде этого:Get-ChildItem -Recurse | Where-Object {$_.FullName -like 'abc_*:\AAA\SDK\Settings\foo.settings.xml'} | Select-String ...
Однако, учитывая, что каждый файл foo.settings.xml находится в одном и том же относительном каталоге, это кажется относительно неэффективным, если принять во внимание большое количество подкаталогов в каждом каталоге abc_*
. Лучшее решение в этом случае было бы что-то вроде:
(где $ Path - это корневой путь к папке со всеми каталогами abc_ *)
Get-ChildItem $Path -Filter abc_* | Foreach-Object