En Powershell listar todos los archivos de un directorio es una tarea muy fácil. Sólo tenemos que utilizar el siguiente comando para enumerar todos los archivos sólo en un directorio.
- Table of contents:
- La gente también busca:
- PowerShell Listar archivos en un directorio:
- gci Alias para Get-ChildItem:
- dir alias para Get-ChildItem:
- PowerShell lista sólo los directorios:
- Script más corto de PowerShell para listar sólo directorios:
- PowerShell lista sólo los archivos en todas las carpetas o directorios:
- PowerShell lista sólo las carpetas de todas las carpetas o directorios:
- PowerShell lista archivos de una extensión:
- PowerShell listar archivos de una extensión recursivamente:
- PowerShell lista los archivos de una extensión de forma recursiva con profundidad:
- Verdict:
Table of contents:
- PowerShell List files in a Directory.
- gci alias for get-chiltitem.
- dir alias for get-childitem.
- PowerShell listar sólo directorios.
- PowerShell listar sólo directorios usando un script más corto.
- PowerShell listar archivos recursivamente.
- PowerShell listar directorios recursivamente.
- Listar archivos de un determinado tipo de extensión.
- PowerShell lista archivos de un determinado tipo de extensión de forma recursiva.
- Lista archivos hasta una profundidad en subdirectorios.
- Verdict.
La gente también busca:
Snippet de trabajo para Start-Job PowerShell 2020
gci -file
El script anterior se muestra se ejecuta y la salida se muestra en la imagen siguiente.
Hay muchas variantes y visitamos bastantes de ellas en este post. Veremos cómo se origina el alias gci y también veremos algunos alias diferentes. Hay formas de obtener sólo los directorios dentro de los directorios y también hasta cierta profundidad.
Visitaremos todas las funciones que podamos sobre el listado de archivos en un directorio.
PowerShell Listar archivos en un directorio:
Los desarrolladores de PowerShell hicieron injustificadamente fácil tratar con archivos y carpetas en PowerShell. A diferencia del scripting tradicional, no tenemos que pensar demasiado en la estructuración del script en PowerShell. Esto se debe a que PowerShell está basado en objetos de entrada y salida. Si alguien es bueno en un lenguaje de programación orientado a objetos, el scripting en PowerShell le resulta natural.
Para empezar, obteniendo sólo los archivos de un directorio, podemos utilizar el cmdlet get-childitem. Añadiremos el modificador -file al cmdlet para obtener sólo los archivos de un directorio concreto.
get-childitem -file
Está claro que esto resuelve nuestro problema. Pero, ¿podemos hacer que el script sea más eficiente? De hecho, podemos.
gci Alias para Get-ChildItem:
El cmdlet get-childitem tiene un alias llamado gci. Disminuye el esfuerzo de escribir todo el script. El siguiente script producirá la salida que necesitamos.
gci -file
dir alias para Get-ChildItem:
El cmdlet get-childitem tiene un alias bastante popular también. Se puede reemplazar con dir para obtener los mismos resultados.
dir -file
El script anterior producirá la salida de la siguiente manera.
PowerShell lista sólo los directorios:
Hemos aprendido cómo listar sólo los archivos en un directorio específico. Ahora veremos cómo listar sólo los directorios de un directorio. Podemos hacerlo con la ayuda del modificador -directory en lugar del modificador -file.
gci -directory
Script más corto de PowerShell para listar sólo directorios:
Podemos simplificar el script con la ayuda del modificador -di. Está disponible, ya que es suficiente para identificar el interruptor -directorio sin ninguna ambigüedad. Utilice la siguiente secuencia de comandos para enumerar sólo los directorios en el directorio.
gci -di
Esto dará a los usuarios la siguiente salida.
PowerShell lista sólo los archivos en todas las carpetas o directorios:
Ahora que hemos visto cómo listar sólo los archivos o sólo las carpetas, todavía no hemos aprendido cómo listar sólo los archivos en el directorio. Podemos hacer esto con la ayuda del interruptor -recurse. El script se da a continuación.
gci -file -recurse
Claramente este es un gran script para llegar a sólo los archivos en el directorio o la carpeta.
PowerShell lista sólo las carpetas de todas las carpetas o directorios:
Podemos listar sólo los archivos del directorio y también el directorio hijo posterior utilizando el siguiente script.
gci -di -recurse
PowerShell lista archivos de una extensión:
Podemos listar sólo un determinado tipo de archivos en un directorio si lo deseamos. Podemos listar sólo los archivos PDF en un directorio utilizando el siguiente script.
gci -file *.pdf
PowerShell listar archivos de una extensión recursivamente:
Podemos llevar el listado de los archivos a un nuevo nivel listando sólo los archivos de una extensión recursivamente. El siguiente ejemplo demuestra precisamente eso.
gci -file -r *.pdf
Nótese cómo utilizamos el modificador -r en lugar del modificador -recurse ya que disminuye la cantidad de escritura que hay que hacer.
PowerShell lista los archivos de una extensión de forma recursiva con profundidad:
Podemos listar todos los archivos de un directorio y del subsiguiente subdirectorio utilizando el modificador -recurse. También podemos acotar la búsqueda utilizando la extensión del archivo. Pero qué pasa si no queremos buscar en carpetas que tengan más de 2 subdirectorios. Podemos utilizar el modificador -depth. El siguiente script lo utiliza.
gci -file -d 1 -r *.pdf
El script de arriba obtendrá un elemento hijo de tipo archivos, buscará hasta los directorios hijos 1, lo hará de forma recursiva y, finalmente, se asegurará de buscar sólo los pdfs.
Verdict:
En este post, aprendimos sobre PowerShell Listar todos los archivos de un directorio. Lo hicimos utilizando el alias get-childitem llamado gci. El gci junto con el switch -file hace lo que necesitamos que haga. También obtuvimos los archivos de una determinada extensión. Obtuvimos los archivos de una determinada extensión de forma recursiva y también hasta una profundidad limitada.
Si quieres más posts increíbles, permanece atento a TecKangaroo.