Что такое PowerShell, эквивалентный этой команде Bash?
Я пытаюсь создать команду CLI, чтобы TFS проверял все файлы, в которых есть определенная строка. Я в основном использую Cygwin, но tf
Команда имеет проблемы с разрешением пути при запуске в среде Cygwin.
Я полагаю, что PowerShell должен уметь делать то же самое, но я не уверен, что эквивалентны команды для grep и xargs.
Итак, какой будет версия PowerShell, эквивалентная следующей команде Bash?
grep -l -r 'SomeSearchString' . | xargs -L1 tf edit
2 ответа
Решение
Используя некоторые псевдонимы UNIX в PowerShell (например, ls):
ls -r | select-string 'SomeSearchString' | Foreach {tf edit $_.Path}
или в более канонической форме Powershell:
Get-ChildItem -Recurse | Select-String 'SomeSearchString' |
Foreach {tf edit $_.Path}
и используя псевдонимы PowerShell:
gci -r | sls 'SomeSearchString' | %{tf edit $_.Path}
Мне проще работать с переменной, например,
PS> $files = Get-ChildItem -Recurse |
Select-String 'SomeSearchString' |
%{$_.path} |
Select -Unique
PS> tf edit $files