HOWTO · PowerShell

Encuentre un archivo específico por nombre usando PowerShell

El cmdlet Get-ChildItem es una útil utilidad de PowerShell que podemos emplear para ubicar un archivo por nombre o extensión. Hace que sea más fácil y rápido localizar un archivo que buscar en el Explorador de Windows.

Este artículo demuestra cómo podemos localizar un archivo específico con PowerShell.

El cmdlet Get-ChildItem es una útil utilidad de PowerShell que podemos emplear para ubicar un archivo por nombre o extensión. Hace que sea más fácil y rápido localizar un archivo que buscar en el Explorador de Windows.

Encuentre un archivo específico por nombre usando PowerShell Get-ChildItem

Podemos usar el cmdlet Get-ChildItem en PowerShell para mostrar una lista de archivos y carpetas en una o varias ubicaciones. Podemos agregar un patrón de búsqueda para limitar nuestra salida a un archivo específico.

Veamos algunos ejemplos.

Suponiendo que queremos localizar todos los archivos en la carpeta actual que tienen una extensión .txt, ¿cómo lo hacemos?

Ejecutaremos el comando Get-ChildItem como se muestra a continuación:

PS C:\Users> Get-ChildItem *.txt

El comando anterior ubicará todos los archivos en el directorio Usuarios con la extensión .txt. ¿Qué pasa si queremos mostrar todos los archivos en la raíz de nuestra unidad C:\?

PS C:\pc\Users> Get-ChildItem -Path C:\

En el comando anterior, el cmdlet Git-ChildItem toma C:\ como el parámetro -Path y muestra todos los archivos y directorios almacenados en la ubicación.

Podemos agregar el parámetro -Recurse para buscar y listar todos los archivos en la ubicación de la unidad C:\. El comando arrojará un error si hay archivos presentes a los que el usuario no tiene acceso.

Para continuar con la operación en caso de error, ejecutamos el comando como se ilustra a continuación:

PS C:\pc\Users> Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue

También podemos especificar un patrón para excluir. Aquí hay un ejemplo:

PS C:\pc\Users> Get-ChildItem -Exclude *.exe -Recurse

El comando anterior enumerará todos los archivos en los subdirectorios presentes en el directorio Usuarios y excluirá los archivos con una extensión de archivo .exe.

También podemos usar el parámetro -Filtro para acotar nuestra búsqueda a una extensión de archivo específica. Mira el ejemplo a continuación:

PS C:\pc\Users> Get-ChildItem -Filter *.txt -Recurse

El comando anterior solo enumerará los archivos con una extensión .txt. ¿Qué pasa si queremos buscar un nombre de archivo específico?

Ejecutaremos el comando Get-ChildItem como se muestra a continuación:

PS C:\pc\Users> Get-ChildItem -recurse -filter "Trial" -File

El comando anterior buscará recursivamente archivos con nombres de archivo que coincidan con Insertar en la carpeta actual. Podemos especificar una carpeta usando el parámetro -Path como se ilustra a continuación:

PS C:\pc\Users> Get-ChildItem -recurse -filter "Trial" -File -Path C:\

El comando anterior buscará recursivamente archivos con nombres de archivo que coincidan con Insertar en nuestra unidad C:\. Puede usar el alias gci en lugar de escribir Get-ChildItem completo.

Alternativamente, podemos ejecutar lo siguiente:

PS C:\pc\Users> Get-ChildItem -Recurse | Where {$_.Name -match 'Insert'} | Select Fullname

En el comando anterior, el cmdlet Get-ChildItem buscará recursivamente archivos en nuestra carpeta actual. El cmdlet Where-Object comparará la propiedad del nombre de archivo que coincide con Insert y generará el nombre completo del archivo.

En pocas palabras, podemos usar el cmdlet Get-ChildItem para encontrar archivos específicos en PowerShell.

Hay varios parámetros que podemos emplear para acotar nuestra búsqueda. Usar PowerShell es mucho más fácil y rápido que buscar en el Explorador de Windows.