2010-01-20 38 views
8

Tôi đang cố gắng tạo một lệnh CLI để có TFS kiểm tra tất cả các tệp có chuỗi cụ thể trong đó. Tôi chủ yếu sử dụng Cygwin, nhưng lệnh tf gặp sự cố khi giải quyết đường dẫn khi chạy trong môi trường Cygwin.PowerShell tương đương với lệnh Bash này là gì?

Tôi hình PowerShell sẽ có thể làm điều tương tự, nhưng tôi không chắc các lệnh tương đương với grepxargs là gì.

Vì vậy, phiên bản PowerShell tương đương với lệnh Bash sau đây là gì?

grep -l -r 'SomeSearchString' . | xargs -L1 tf edit 

Trả lời

12

Sử dụng một số bí danh UNIX trong PowerShell (như ls):

ls -r | select-string 'SomeSearchString' | Foreach {tf edit $_.Path} 

hoặc trong một hình thức Powershell kinh điển hơn:

Get-ChildItem -Recurse | Select-String 'SomeSearchString' | 
    Foreach {tf edit $_.Path} 

và sử dụng bí danh PowerShell:

gci -r | sls 'SomeSearchString' | %{tf edit $_.Path} 
2

Tôi thấy dễ dàng hơn khi bị lúng túng sử dụng biến, ví dụ:

PS> $files = Get-ChildItem -Recurse | 
     Select-String 'SomeSearchString' | 
     %{$_.path} | 
     Select -Unique 
PS> tf edit $files 
Các vấn đề liên quan