2010-08-31 28 views

Respuesta

15
Get-ChildItem | ForEach-Object { <# do what you need to do #> } 

o más corto:

gci | % { <# ... #> } 

o si desea una estructura iterativa explícita: sin embargo

foreach ($file in Get-ChildItem) { 
    # ... 
} 

Nota, que foreach sólo se ejecutará una vez que toda la salida de Get-ChildItem se recoge. En mi opinión, la mayoría del código de Powershell debe usar la tubería tanto como sea posible.

+0

Si tiene una gran cantidad de archivos, [System.IO.Directory] :: EnumerateFiles. Requiere .NET 4+. Pero no espera hasta que itere sobre todos los archivos. Lo cual es un problema si tiene miles dentro de un directorio. https://stackoverflow.com/questions/14970692/powershell-io-directory-find-file-types-in-all-subdirectories – TamusJRoyce

+0

@TamusJRoyce: Get-ChildItem debería transmitirse también. A diferencia de Directory.GetFiles, por supuesto, que devuelve una matriz. – Joey