Listar archivos en un directorio con PowerShell

PowerShell es una plataforma de automatización y scripting de Microsoft de código abierto y de libre acceso. Su objetivo es ayudar a sus usuarios a crear herramientas y scripts eficientes para ayudarles a realizar sus trabajos de forma más eficaz. En PowerShell hay disponibles muchas funciones y comandos útiles, que se conocen como cmdlets. Estos cmdlets se utilizan para realizar una operación específica, como hacer ping a un equipo remoto, leer un archivo en particular, etc.

Cuando quieres saber qué archivos hay en tu sistema, seguramente necesitas listarlos. Muchos usuarios pueden creer que explorar los archivos en la interfaz gráfica de usuario (GUI) es mucho más conveniente que meterse con la línea de comandos o PowerShell. Pero esa no es la verdad. Listar archivos es una operación que PowerShell realiza sin esfuerzo. Si tienes algún problema para listar archivos en un directorio con PowerShell, entonces este post está aquí para rescatarte. PowerShell utiliza el comando «Get-ChildItem» para listar los archivos presentes en un directorio. Conozcamos más sobre este encomiable comando.

¿Qué es Get-ChildItem?

En PowerShell, «Get-ChildItem» realiza la misma función que «dir» en el símbolo del sistema de Windows. Este cmdlet recupera datos de una ubicación específica. También enumera los objetos o elementos de una o más ubicaciones de archivo proporcionadas. Los elementos obtendrán sus elementos hijos del contenedor. Registro y Archivos se denominan elementos hijos en las subcarpetas de PowerShell. Al igual que «dir /s», si desea recuperar datos de los contenedores hijos, debe utilizar el parámetro «-Recurse».

Un sistema de archivos puede ser cualquier cosa, desde un almacén de certificados hasta un directorio de ruta compartida de la colmena del registro o local. Cuando se utiliza «Get-ChildItem» en un sistema, éste lista archivos, directorios y subdirectorios. En el otro caso, cuando se utiliza sobre un directorio, este comando devuelve una lista de archivos y subdirectorios que se encuentran bajo él. ¡Get-ChildItem no muestra directorios vacíos cuando se utilizan las opciones «-Recurse» o «-Depth» en un comando Get-ChildItem.

Operadores utilizados con el comando Get-ChildItem en PowerShell

Los siguientes son los operadores que se utilizan con el cmdlet Get-ChildItem:

  • «,» para OR
  • «+» para AND
  • «!» para NOT

Atributos del comando Get-ChildItem en PowerShell

Aquí están algunos de los atributos del cmdlet Get-ChildItem, que se utilizan para listar archivos o carpetas según los atributos especificados.

  • enlace (l)
  • sistema (s)
  • directorio (d)
  • oculto (h)
  • sólo lectura (r)
  • archivo (a)

Veamos algunos ejemplos de listado de archivos en PowerShell.

Ejemplo 1: Listado de elementos hijos en un directorio específico usando el parámetro «-Path»

Si desea listar los archivos y directorios de un directorio específico, utilice el parámetro «-Path» en el comando «Get-ChildItem». Esta opción ayudará a PowerShell a listar todos los elementos hijos del directorio especificado. El parámetro «-Path» también se utiliza para establecer las rutas de una o varias ubicaciones de archivos. Si no se menciona explícitamente la ruta del directorio, el directorio de trabajo actual será la ubicación por defecto.

En el siguiente ejemplo, PowerShell listará todos los archivos y carpetas hijos presentes en el directorio «E:\vbox\»:

> Get-ChildItem -Path E:\vbox\

Si no añade el parámetro «-Path», el cmdlet «Get-ChildItem» tomará el primer parámetro como la ruta del directorio. La ejecución de este comando le mostrará la misma salida:

> Get-ChildItem E:\vbox\

Ejemplo 2: Listado de elementos hijos y sus subdirectorios utilizando el parámetro «-Recurse»

El «-Recurse» es el parámetro que busca los archivos y carpetas en los subdirectorios de la ruta especificada. Si desea almacenar toda esta información, entonces utilice un contenedor PowerShell, guarde los detalles como el nombre, la longitud y el nombre completo de los elementos hijos. ¡Después, el comando «Get-ChildItem» recuperará toda esta información del contenedor y listará los archivos, directorios y subdirectorios de los elementos hijos.

> Get-ChildItem -Recurse «E:\software» | Where { ! $_.PSIsContainer } | Select Name,FullName,Length

Puede recuperar la información según sus necesidades. Aquí, hemos excluido la «Longitud» de los archivos y directorios:

> Get-ChildItem -Recurse «E:\vbox» | Where { $_.PSIsContainer } | Select Name,FullName

| Select Name,FullName

Ejemplo 3: Listado de ficheros de un directorio utilizando el parámetro «-Exclude»

El parámetro «-Exclude» es una cadena que excluye directorios y ficheros con alguna extensión específica. Se especifica después de añadir la ruta del directorio. ¡También se utilizan caracteres comodín para este fin, como *.txt en el siguiente ejemplo:

> Get-ChildItem -Recurse «E:\UWT4» -Exclude *.txt | Where {! $_.PSIsContainer } | Select Name,FullName

La ejecución de este comando listará todos los directorios y archivos excepto los archivos que tengan la extensión «.txt».

Ejemplo 4: Listado de archivos de un directorio utilizando el parámetro «-Include»

El parámetro «-Include» es una cadena utilizada en el cmdlet «Get-ChildItem» para listar archivos y carpetas específicos. Puede especificar más de una extensión con la opción «-Include», separadas por una coma. Por ejemplo, incluiremos todos los ficheros con extensión «.txt» en el directorio «C:\Windows\System32»:

> Get-ChildItem -Path C:\Windows\System32\* -Include *.txt

Ejemplo 5: Listado de archivos en un directorio usando el parámetro «-Descending»

Mientras se listan los archivos en PowerShell, se pueden ordenar en base a varios atributos como el nombre de los archivos o la Longitud de los mismos.

En el siguiente comando, el «Get-ChildItem» imprimirá la lista de archivos y directorios ordenados de forma descendente por su longitud:

> Get-ChildItem -Path E:\UWT4 -Recurse -File | sort length -Descending

Ejemplo 6: Listado de archivos en un directorio usando el parámetro «-Depth»

Si quiere controlar la recursión de los directorios, entonces use el parámetro «-Depth» en su comando «Get-ChildItem». Por defecto, cuando se ejecuta el cmdlet «Get-ChildItem», se listan todos los elementos hijos con sus subdirectorios. Pero, cuando se añade el parámetro «-Depth», se puede listar el nivel exacto del contenido de los subdirectorios.

Por ejemplo, si se especifica «-Depth 2» en el comando Get-ChildItem, el cmdlet listará los subdirectorios de primer nivel con los de segundo nivel.

> Get-ChildItem -Path E:\vbox -Recurse -Depth 2

Ejemplo 7: Contar el número de elementos hijos en un directorio

A medida que guardamos más y más archivos en nuestros sistemas, es fácil perder la cuenta de cuántos archivos hay en cada carpeta. El comando Get-ChildItem también proporciona una solución para eso.

Le mostraremos cómo el cmdlet Get-ChildItem mide el recuento de objetos del directorio «E:\vbox\» especificado.

> (Get-ChildItem -Recurse -Path E:\vbox\ | Measure-Object).Count

Conclusión

PowerShell utiliza el comando «Get-ChildItem» para listar los archivos de un directorio. El «dir» en el símbolo del sistema de Windows y «Get-ChildItem» en PowerShell realizan la misma función. En este artículo, hemos recopilado ejemplos para entender el listado de archivos en PowerShell. Estos ejemplos incluyen el listado de archivos y carpetas de un directorio específico, la inclusión o exclusión de algunos archivos en particular, la ordenación de la lista de archivos o el control de la recursión de los directorios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *