Cómo buscar archivos con extensión en PowerShell

  1. Usar Get-ChildItem Con Filter Para Encontrar Archivos Con Extensión En PowerShell
  2. Usar Get-ChildItem Con Include Para Encontrar Archivos Con Extensiones En PowerShell
  3. Conclusión
Cómo buscar archivos con extensión en PowerShell

PowerShell es una herramienta versátil y poderosa para gestionar archivos y directorios en tu computadora. Una tarea común es encontrar archivos con extensiones específicas.

En este artículo, exploraremos los métodos para localizar de manera eficiente archivos con extensiones particulares usando el cmdlet Get-ChildItem en PowerShell.

Usar Get-ChildItem Con Filter Para Encontrar Archivos Con Extensión En PowerShell

El comando Get-ChildItem en el entorno de PowerShell obtiene un ítem de una ubicación especificada. Un ítem puede residir en un contenedor, y un contenedor generalmente es una carpeta.

Además, Get-ChildItem utiliza un parámetro -Recurse para obtener ítems de los contenedores hijos o subcontenedores. También incluye un parámetro -Filter que usa un asterisco (*) como comodín para obtener todos los archivos con una extensión específica.

Sintaxis:

Get-ChildItem -Path "File Path" -Recurse -File -Filter *.txt

Parámetros:

  • -Path "Ruta del Archivo": Especifica el directorio de inicio de la búsqueda, donde buscaremos extensiones específicas.
  • -Recurse: Extiende la búsqueda a subdirectorios, proporcionando una búsqueda completa.
  • -File: Se centra en archivos, no en directorios, asegurando que solo se devuelvan archivos.
  • -Filter *.txt: Establece el filtro para archivos con la extensión ".txt". El asterisco (*) coincide con cualquier carácter antes de ".txt".

Vamos a dar un ejemplo. El siguiente comando encuentra todos los archivos con la extensión .txt.

Get-ChildItem "C:\Files\"  -Recurse -File -Filter *.txt

En el comando, comenzamos nuestra búsqueda usando el cmdlet Get-ChildItem en el directorio "C:\Files", lo que nos permite recopilar información sobre ítems, ya sean archivos o directorios, dentro de esa ubicación. Para extender nuestra búsqueda a todos los subdirectorios también, incluimos el parámetro -Recurse.

Luego, para especificar que estamos interesados en archivos y no en directorios, añadimos el parámetro -File. Finalmente, definimos nuestra condición de filtro usando -Filter *.txt, que busca archivos que terminan con ".txt" con el asterisco (*) funcionando como un caracter comodín para coincidir con cualquier carácter que lo preceda.

De esta manera, instruimos eficazmente a PowerShell para localizar todos los archivos cuyos nombres concluyan en ".txt".

Salida:

Directory: C:\Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file1.txt
-a----         5/15/2022  11:02 PM              0 file2.txt
-a----         5/15/2022  11:02 PM              0 file3.txt

    Directory: C:\Files\Misc files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:05 PM              0 file8.txt

    Directory: C:\Files\More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file4.txt

    Directory: C:\Files\More Files\Some More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:03 PM              0 file6.txt

Podríamos agregar el parámetro -Name al Get-ChildItem para que solo se muestren las rutas de los archivos en lugar de una salida detallada.

Get-ChildItem "C:\Files\"  -Recurse -File -Name -Filter *.txt

Salida:

file1.txt
file2.txt
file3.txt
Misc files\file8.txt
More Files\file4.txt
More Files\Some More Files\file6.txt

Podemos ver, en la salida, que solo muestra los nombres y rutas de los archivos después de ejecutar el comando con el parámetro -Name.

Usar Get-ChildItem Con Include Para Encontrar Archivos Con Extensiones En PowerShell

El comando Get-ChildItem utiliza el parámetro -Include que acepta uno o más patrones de cadenas para incluir los ítems coincidentes.

Sintaxis:

Get-ChildItem "File Path" -Recurse -File -Name -Include *.txt
  • -Path "Ruta del Archivo": Especifica el directorio de inicio para la búsqueda, donde buscamos archivos de una extensión específica.
  • -Recurse: Extiende la búsqueda a todos los subdirectorios, asegurando una búsqueda completa.
  • -File: Se centra exclusivamente en archivos, excluyendo directorios de los resultados.
  • -Name: Lista solo los nombres de los archivos en la salida sin información detallada del archivo.
  • -Include *.txt: Filtra y recupera archivos con la extensión ".txt" en los resultados.

Agregar un asterisco final (*) a la ruta del archivo es necesario sin la bandera -Recurse. En ese caso, solo lista los archivos .txt en la carpeta Files.

Get-ChildItem "C:\Files\*" -File -Name -Include *.txt

En el comando, usamos el cmdlet Get-ChildItem para iniciar una búsqueda de archivos dentro del directorio "C:\Files" y todos sus subdirectorios. Para pinpoint archivos con una extensión ".txt", aplicamos una serie de parámetros.

Comenzamos estableciendo la ruta con "C:\Files\*", que incluye todos los subdirectorios bajo "C:\Files". Al añadir el parámetro -File, nos concentramos únicamente en archivos, excluyendo directorios.

El parámetro -Name refina nuestra salida, mostrando solo los nombres de los archivos, mientras que el parámetro -Include *.txt ajusta la búsqueda filtrando los archivos con la extensión ".txt".

Salida:

file1.txt
file2.txt
file3.txt

La salida representa una lista de nombres de archivos con la extensión ".txt", que coincide con los criterios que especificamos en nuestro comando de PowerShell.

Conclusión

En este artículo, hemos explorado métodos eficientes para usar el cmdlet Get-ChildItem en PowerShell para localizar dichos archivos. Hemos cubierto dos enfoques: usando el parámetro -Filter para precisión y el parámetro -Include para flexibilidad.

Estas técnicas pueden simplificar tareas como el análisis y la organización de datos, haciendo que la gestión de archivos en un entorno Windows sea más eficiente.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete

Artículo relacionado - PowerShell File