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_dataTambié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 -DirectoryEl 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_dataSupongamos 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 -DirectoryLa 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 -DirectoryLa 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.



