Búsqueda de sitios web

PowerShell: use Get-ChildItem para devolver carpetas únicamente


De forma predeterminada, el cmdlet Get-ChildItem en PowerShell devuelve carpetas y archivos en un directorio particular.

Sin embargo, puede utilizar el operador -Directory para especificar que solo desea obtener las carpetas de un directorio en particular:

Get-ChildItem c:\users\bobbi\current_data -Directory

Este ejemplo en particular devolverá solo las carpetas ubicadas en el siguiente directorio:

c:\users\bobbi\current_data

También tenga en cuenta que puede utilizar el alias gci para Get-ChildItem si desea una sintaxis aún más corta:

gci c:\users\bobbi\current_data -Directory

El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.

Ejemplo: use Get-ChildItem para devolver carpetas solo en PowerShell

Supongamos que tenemos una carpeta llamada current_data guardada en la siguiente ubicación:

c:\users\bobbi\current_data

Supongamos que usamos el cmdlet Get-ChildItem para devolver todas las carpetas y archivos en este directorio:

Get-ChildItem c:\users\bobbi\current_data

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Podemos ver que este directorio contiene tres carpetas:

  • datos1
  • datos2
  • datos3

También contiene tres archivos:

  • datos_béisbol.xlsx
  • futbol_data.xlsx
  • hockey_data.xlsx

Supongamos que nos gustaría devolver solo las carpetas y no los archivos.

Podemos utilizar la siguiente sintaxis para hacerlo:

Get-ChildItem c:\users\bobbi\current_data -Directory

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Observe que esta vez solo se devuelven las carpetas y no los archivos.

También podríamos usar el alias gci para Get-ChildItem para obtener los mismos resultados:

gci c:\users\bobbi\current_data -Directory

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Una vez más, sólo se devuelven las carpetas y no los archivos.

Tenga en cuenta que si solo desea devolver las carpetas que no están vacías, puede utilizar la siguiente sintaxis:

gci c:\users\bobbi\current_data -Directory -recurse | ? {$_.GetFiles().Count -ne 0}

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Tenga en cuenta que esto solo devuelve las carpetas denominadas data1 y data2, lo que significa que la carpeta denominada data3 estaba realmente vacía.

Nota: En este ejemplo utilizamos el operador ? para filtrar los resultados para que solo contengan carpetas donde el recuento de archivos no era igual a cero.

Artículos relacionados