Quelle commande utilisez-vous pour rechercher des répertoires vides dans Windows?
Certains dossiers peuvent contenir des dossiers cachés comme .svn
ou .settings
, mais ils doivent toujours être traités comme des dossiers vides.
windows
powershell
Joshua
la source
la source
Réponses:
La façon la plus simple à laquelle je peux penser est avec un petit script PowerShell . Si vous exécutez Windows 7, vous devriez déjà l'avoir installé, sinon visitez Microsoft.com pour le télécharger et l'installer. Le lien fournit une description détaillée mais le résumé de l'opération est inclus ici pour votre commodité.
Ouvrez PowerShell et entrez ceci:
Remplacez C: \ Scripts par ce que vous souhaitez rechercher, vous pouvez même le définir sur C: \ uniquement si vous souhaitez qu'il vérifie l'intégralité du lecteur.
Il vous donnera une sortie comme celle-ci (notez que ce sont les répertoires vides sous C: \ Scripts.
Si vous examinez un peu PowerShell, je suis sûr que vous serez en mesure de savoir comment supprimer automatiquement les dossiers vides si vous le souhaitez (bien que je le déconseille, au cas où.)
Edit : Comme Richard l'a mentionné dans les commentaires, pour un répertoire vraiment vide, utilisez:
la source
?{$_.GetFileSystemInfos().Count -eq 0}
.Ce qui suit est le moyen le plus simple que j'ai pu trouver pour y parvenir avec une seule ligne de code. Il répertorie les répertoires vides à l'emplacement actuel. Si une récursivité est nécessaire, le paramètre
-Recurse
pourrait être ajouté à l'appel àGet-ChildItem
.Get-ChildItem -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }
Version courte avec alias:
dir -Directory | ? {$_.GetFileSystemInfos().Count -eq 0 }
Ou, en tant que fonction PowerShell paramétrée (j'ai ajouté cela à mon profil de démarrage PowerShell):
Cela peut ensuite être appelé comme n'importe quelle autre fonction PowerShell, y compris la tuyauterie. Par exemple, cet appel supprimerait tous les répertoires vides du répertoire temporaire du système:
Get-EmptyDirectories $env:TMP | del
la source
Essaye ça
Le nombre n'est pas 0, il n'existe pas du tout, ce qui signifie que le répertoire est complètement vide ou contient d'autres dossiers complètement vides
la source
Merci, j'ai utilisé cela comme base pour mon script. Je voulais supprimer des dossiers vides, mais essayer de le faire
Where-Object {$_.GetFiles().Count -eq 0}
supprimerait les dossiers qui avaient des sous-répertoires qui n'étaient pas vides. J'ai fini par utiliser une boucle DO WHILE pour supprimer un dossier qui n'avait aucun fichier ou dossier, puis boucler et vérifier à nouveau jusqu'à ce qu'il atteigne la fin de l'arborescence.la source