¿Qué comando utilizas para encontrar directorios vacíos en Windows?
Algunas carpetas pueden contener algunas carpetas ocultas como .svn
o .settings
, pero aún deben tratarse como carpetas vacías.
windows
powershell
Joshua
fuente
fuente
Respuestas:
La forma más fácil que se me ocurre es con un pequeño script de PowerShell . Si está ejecutando Windows 7 ya debería tenerlo instalado, si no, visite Microsoft.com para descargarlo e instalarlo. El enlace proporciona una descripción detallada, pero la esencia de la operación se incluye aquí para su conveniencia.
Abra PowerShell e ingrese esto:
Cambie C: \ Scripts a lo que quiera buscar, incluso puede configurarlo solo en C: \ si desea que compruebe toda la unidad.
Le dará una salida como esta (tenga en cuenta que estos son los directorios vacíos debajo de C: \ Scripts.
Si observa un poco PowerShell, estoy seguro de que podrá descubrir cómo eliminar automáticamente las carpetas vacías si lo desea (aunque lo recomiendo, por si acaso).
Editar : como Richard mencionó en los comentarios, para un directorio verdaderamente vacío use:
fuente
?{$_.GetFileSystemInfos().Count -eq 0}
.La siguiente es la forma más fácil que pude encontrar para lograr esto con una sola línea de código. Enumera los directorios vacíos en la ubicación actual. Si se necesita la recursión, el parámetro
-Recurse
podría agregarse a la llamada aGet-ChildItem
.Get-ChildItem -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }
Versión corta con alias:
dir -Directory | ? {$_.GetFileSystemInfos().Count -eq 0 }
O, como una función de PowerShell parametrizada (agregué esto a mi perfil de inicio de PowerShell):
Esto se puede invocar como cualquier otra función de PowerShell, incluidas las tuberías. Por ejemplo, esta llamada eliminaría todos los directorios vacíos en el directorio temporal del sistema:
Get-EmptyDirectories $env:TMP | del
fuente
Prueba esto
El recuento no es 0, no existe en absoluto, lo que significa que el directorio está completamente vacío o contiene otras carpetas completamente vacías
fuente
Gracias, usé esto como base para mi guión. Quería eliminar carpetas vacías, pero intentar hacerlo
Where-Object {$_.GetFiles().Count -eq 0}
eliminaría las carpetas que tenían subdirectorios que no estaban vacías. Terminé usando un bucle DO WHILE para eliminar una carpeta que no tenía archivos o carpetas, luego retrocedo y verifique nuevamente hasta que llegue al final del árbol.fuente