Búsqueda de sitios web

¿Cómo enumerar nombres de archivos solo en PowerShell?


Puedes hacer cosas locas en PowerShell, una de las cuales es obtener solo nombres de archivos. En este artículo, le mostraré cómo enumerar nombres de archivos sólo en PowerShell.

Para enumerar nombres de archivos solo en PowerShell, puede usar el cmdlet Get-ChildItem combinado con el parámetro -Name. Por ejemplo, Get-ChildItem -Path “C:\Your\Directory” -Name genera todos los nombres de archivos en el directorio especificado. Para excluir directorios y enumerar solo archivos, agregue el parámetro -File, así: Get-ChildItem -Path “C:\Your\Directory” -File -Name.

Obtener nombres de archivos únicamente mediante el cmdlet Get-ChildItem

Probemos el enfoque más simple.

El comando principal para enumerar archivos en PowerShell es Get-ChildItem. Este cmdlet recupera los elementos y elementos secundarios en una o más ubicaciones especificadas. Para enumerar únicamente los nombres de los archivos, puede utilizar este cmdlet en su forma más sencilla.

Get-ChildItem -Path "C:\MyFolder" -Name

El parámetro -Path especifica el directorio y el parámetro -Name garantiza que solo se muestren los nombres de los archivos, excluyendo otros detalles como el tamaño, el tipo o la fecha de modificación.

Puede ver en la captura de pantalla a continuación que ejecuté el script usando código VS.

Filtrar directorios

De forma predeterminada, Get-ChildItem enumera archivos y directorios en PowerShell. Si desea enumerar solo archivos, puede filtrar los directorios usando el parámetro -File.

Get-ChildItem -Path "C:\MyFolder" -File -Name

Este comando devolverá una lista de nombres de archivos sin sus extensiones e ignorará solo los nombres de las carpetas.

Obtener nombres de archivos excluyendo extensiones de archivo

Si desea enumerar los archivos pero excluir sus extensiones, puede usar una combinación de cmdlets Get-ChildItem y ForEach-Object en PowerShell.

Get-ChildItem -Path "C:\MyFolder" -File | ForEach-Object { $_.BaseName }

Este script enumera los nombres base (nombres de archivos sin extensiones) de todos los archivos en el directorio especificado.

Obtener nombres de archivos solo de forma recursiva

Para enumerar los archivos en el directorio especificado y todos los subdirectorios, use el parámetro -Recurse en los cmdlets Get-ChildItem de PowerShell.

Get-ChildItem -Path "C:\MyFolder" -Recurse -File -Name

Este comando enumerará todos los nombres de archivos, incluidos los de todos los niveles de subdirectorios del directorio de destino.

Filtrado avanzado con objeto Where

Para escenarios más avanzados, es posible que necesite filtrar la lista de archivos según ciertos criterios, como nombres de archivos que contienen texto específico. El cmdlet Where-Object se puede utilizar para este propósito.

Aquí está el script completo de PowerShell.

Get-ChildItem -Path "C:\MyFolder" -File | Where-Object { $_.Name -like '*myfile*' } | ForEach-Object { $_.Name }

Conclusión

Si sigue los métodos anteriores, debería poder listar nombres de archivos en PowerShell.

La forma más sencilla de utilizar el cmdlet Get-ChildItem de PowerShell.

Artículos relacionados