Jakiego polecenia używasz do znajdowania pustych katalogów w systemie Windows?
Niektóre foldery mogą zawierać ukryte foldery, takie jak .svn
lub .settings
, ale nadal powinny być traktowane jako puste foldery.
windows
powershell
Jozuego
źródło
źródło
Odpowiedzi:
Najprościej jest myśleć o małym skrypcie PowerShell . Jeśli używasz systemu Windows 7, powinieneś go już zainstalować, jeśli nie, odwiedź Microsoft.com, aby go pobrać i zainstalować. Link zawiera szczegółowy opis, ale dla wygody podany jest tutaj pierwszy etap operacji.
Otwórz PowerShell i wpisz:
Zmień C: \ Skrypty na cokolwiek, co chcesz przeszukać, możesz nawet ustawić tylko C: \, jeśli chcesz, aby sprawdzał cały dysk.
To da ci wynik taki jak ten (pamiętaj, że są to puste katalogi poniżej C: \ Scripts.
Jeśli spojrzysz trochę na PowerShell, jestem pewien, że będziesz w stanie dowiedzieć się, jak automatycznie usuwać puste foldery, jeśli chcesz (choć na wszelki wypadek zalecam).
Edycja : Jak wspomniał Richard w komentarzach, do naprawdę pustego katalogu użyj:
źródło
?{$_.GetFileSystemInfos().Count -eq 0}
.Oto najprostszy sposób, w jaki udało mi się to osiągnąć za pomocą jednego wiersza kodu. Wyświetla listę pustych katalogów w bieżącej lokalizacji. Jeśli potrzebna jest rekurencja, parametr
-Recurse
można dodać do wywołania doGet-ChildItem
.Get-ChildItem -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }
Krótka wersja z aliasami:
dir -Directory | ? {$_.GetFileSystemInfos().Count -eq 0 }
Lub jako sparametryzowana funkcja PowerShell (dodałem to do mojego profilu startowego PowerShell):
Można to następnie wywołać jak każdą inną funkcję PowerShell, w tym potokowanie. Na przykład to wywołanie spowoduje usunięcie wszystkich pustych katalogów w systemowym katalogu tymczasowym:
Get-EmptyDirectories $env:TMP | del
źródło
Dzięki, wykorzystałem to jako podstawę mojego skryptu. Chciałem usunąć puste foldery, ale próba
Where-Object {$_.GetFiles().Count -eq 0}
usunięcia folderów z podkatalogami, które nie były puste. Skończyło się na użyciu pętli DO WHILE, aby usunąć folder, który nie miał plików ani folderów, a następnie zapętlić i sprawdzić ponownie, aż dotrze do końca drzewa.źródło
Spróbuj tego
Liczba nie jest równa 0, w ogóle nie istnieje, co oznacza, że katalog jest całkowicie pusty lub zawiera inne całkowicie puste foldery
źródło