Я почти уверен, что строка выбора Powershell подойдет для меня с небольшой рекурсией Get-ChildItem.
У меня есть много каталогов, как это:
abc_123
abc_345
abc_567
abc_890
abc_111
abc_569
В каждом каталоге есть определенный файл с одинаковым путем к каждому файлу в каждом каталоге:
abc_123:\AAA\SDK\Settings\foo.settings.xml
abc_345:\AAA\SDK\Settings\foo.settings.xml
abc_567:\AAA\SDK\Settings\foo.settings.xml
И так далее.
В файле foo.settings.xml я хочу найти «BAR». а также на одну строку ниже:
<name="BAR.ABB"
default="1"
Проблема, которая у меня возникла, находится в каталоге, в котором есть abc_123, abc_345, abc_567 и т.д., Есть другие каталоги, которые также содержат BAR. *. Мне плевать на эти результаты.
Я пытаюсь что-то подобное, но это не работает.
Get-ChildItem -Recurse *.* | Select-String -Pattern "BAR.*" foo.settings.xml | Select-Object -Unique Path
Где в моей команде я могу указать, что я хочу искать каталоги, начинающиеся с abc_ и по указанному пути?
--- редактировать ---
Путь всегда начинается с abc_ *, и foo.settings.xml всегда имеет этот путь:abc_*:\AAA\SDK\Settings\foo.settings.xml
Я попробовал это:Get-ChildItem -Recurse | Where-Object {"abc_*"} | Select-String –Pattern "BAR.*"
, Но это, похоже, дает те же результаты сверху.