Какую команду вы используете для поиска пустых каталогов в Windows?
Некоторые папки могут содержать некоторые скрытые папки, такие как .svn
или .settings
, но они все равно должны рассматриваться как пустые папки.
windows
powershell
Джошуа
источник
источник
Ответы:
Самый простой способ, который я могу придумать, - это небольшой скрипт PowerShell . Если вы используете Windows 7, вы должны уже установить его, если не заходите на сайт Microsoft.com, чтобы загрузить и установить его. Ссылка содержит подробное описание, но суть операции приведена здесь для вашего удобства.
Откройте PowerShell и введите это:
Измените C: \ Scripts на то, что вы хотите найти, вы даже можете установить его на C: \, если хотите, чтобы он проверял весь диск.
Это даст вам такой вывод (обратите внимание, что это пустые каталоги ниже C: \ Scripts.
Если вы немного загляните в PowerShell, я уверен, что вы сможете понять, как автоматически удалять пустые папки, если хотите (хотя я рекомендую против, на всякий случай).
Изменить : как Ричард упомянул в комментариях, для действительно пустой директории использовать:
источник
?{$_.GetFileSystemInfos().Count -eq 0}
.Следующее является самым простым способом, который я мог бы найти, чтобы достичь этого с помощью одной строки кода. В нем перечислены пустые каталоги в текущем местоположении. Если требуется рекурсия, параметр
-Recurse
может быть добавлен к вызовуGet-ChildItem
.Get-ChildItem -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }
Короткая версия с псевдонимами:
dir -Directory | ? {$_.GetFileSystemInfos().Count -eq 0 }
Или, как параметризованная функция PowerShell (я добавил это в свой профиль запуска PowerShell):
Затем его можно вызвать как любую другую функцию PowerShell, включая конвейерную передачу. Например, этот вызов удалит все пустые каталоги в системном временном каталоге:
Get-EmptyDirectories $env:TMP | del
источник
Попробуй это
Счетчик не равен 0, он вообще не существует, что означает, что каталог полностью пуст или содержит другие совершенно пустые папки.
источник
Спасибо, я использовал это как основу для моего сценария. Я хотел удалить пустые папки, но попытка сделать это
Where-Object {$_.GetFiles().Count -eq 0}
приведет к удалению папок с подкаталогами, которые не были пустыми. Я закончил тем, что использовал цикл DO WHILE, чтобы удалить папку, в которой не было файлов или папок, затем вернулся назад и проверил снова, пока он не достиг конца дерева.источник