2010-01-20 31 views
8

Estoy tratando de crear un comando CLI para tener TFS eche un vistazo a todos los archivos que tienen una cadena en particular. Principalmente uso Cygwin, pero el comando tf tiene problemas resolviendo la ruta cuando se ejecuta dentro del entorno Cygwin.¿Cuál es el equivalente de PowerShell a este comando Bash?

Me imagino que PowerShell debería poder hacer lo mismo, pero no estoy seguro de cuáles son los comandos equivalentes a grep y xargs.

Entonces, ¿cuál sería la versión equivalente de PowerShell para el siguiente comando Bash?

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

Respuesta

12

El uso de algunos alias UNIX en PowerShell (como ls):

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

o en una forma Powershell más canónica:

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

y el uso de alias PowerShell:

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

Me resulta más fácil grok utilizando una variable, por ejemplo,

PS> $files = Get-ChildItem -Recurse | 
     Select-String 'SomeSearchString' | 
     %{$_.path} | 
     Select -Unique 
PS> tf edit $files 
Cuestiones relacionadas