TFS не предоставляет эту функцию из коробки, но вы можете использовать Powershell для объединения существующих функций TFS, чтобы получить то, что вам нужно.
Мой план состоит в том, чтобы сначала использовать tf dir
, чтобы получить список файлов, затем использовать tf view
, чтобы получить содержимое файлов и, наконец, передать содержимое в Select-String
, чтобы найти искомую строку (или регулярное выражение).
Вы можете начать с:
tf dir /recursive $/
но этот список, вероятно, будет огромным, поэтому попытайтесь ограничить свой поиск небольшой областью, например:
tf dir /recursive $/some/path/*.cs
Следующим шагом является преобразование результатов предыдущего шага в формат, который мы затем можем передать в tf view
. Вот скрипт powershell, который делает это:
(tf dir /recursive $/) -join "+" -replace ":", "" -replace "\+\+", "`n" -split "`n" | %{ $arr = $_ -split "\+"; $arr | select -Skip 1 | %{ $arr[0] + '/' + $_ } }
Теперь давайте передадим список в tf view
, а затем Select-String
:
... | %{ $file = $_ ; if (tf view "$file" /console | Select-String "some string") { Write-Host $file } }
Не забудьте поменять часть с надписью "some string"
.
Всего вы получите:
(tf dir /recursive $/) -join "+" -replace ":", "" -replace "\+\+", "`n" -split "`n" | %{ $arr = $_ -split "\+"; $arr | select -Skip 1 | %{ $arr[0] + '/' + $_ } } | %{ $file = $_ ; if (tf view "$file" /console | Select-String "some string") { Write-Host $file } }
Да, и не забудьте заменить часть с надписью "some string"
на ваш фактический поисковый запрос.