Использование Where-Object
вместо Select-String
для фильтрации файлов, разверните свойство FullName
(или Name
), так что вы получите массив путей или имен файлов, и splat его при вызове gvim
:
$files = Get-ChildItem -Recurse *.* |
Where-Object { (Get-Content $_.FullName) -match "matching_pattern" } |
Select-Object -Unique -Expand FullName
& gvim @files
Заменить FullName
с Name
в Select-Object
, чтобы получить только имена файлов без пути.
Если вы хотите придерживаться Select-String
подход был бы похож:
$files = Get-ChildItem -Recurse *.* |
Select-String -Pattern "matching_pattern" |
Select-Object -Unique -Expand Path
& gvim @files
Заменить Path
с Filename
в Select-Object
заявлении получить только имена файлов без пути.
'Where-Object' соответствует имени файла, но мне нужно, чтобы оно соответствовало содержимому файла. – PortMan