Encuentre un archivo específico por nombre usando PowerShell

John Wachira 20 junio 2023
Encuentre un archivo específico por nombre usando PowerShell

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.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - PowerShell File