Следующая идея batch-file , которая использует powershell , может предоставить требуемую информацию.
Я говорю, может, потому что вы не уточнили, что вы считаете пустую подпапку или папку размером 0.
Следующий пример однострочного пакетного файла должен работать независимо от установленной powershell.exe
версии:
@(For /F "Delims=" %%G In ('%__AppDir__%WindowsPowerShell\v1.0\powershell.exe -NoP "(GCI -Rec|?{$_.PSIsContainer -Eq $True})|?{$_.GetFileSystemInfos().Count -Eq 0}|Select -Exp FullName" 2^>NUL')Do @Echo/%%G)&Pause
Если вы ' Если вы используете более современную версию powershell.exe
, возможно, вам будет предпочтительнее следующий пример:
@(For /F "Delims=" %%G In ('%__AppDir__%WindowsPowerShell\v1.0\powershell.exe -NoP "GCI -AD -S|?{$_.GetFileSystemInfos().Count -Eq 0}|Select -Exp FullName" 2^>NUL')Do @Echo/%%G)&Pause
Оба примера предназначены для рекурсии из текущего каталога, если вы sh вставьте базовый каталог непосредственно в for l oop, а затем используйте его сразу после GCI
в любом выбранном вами примере (предпочтительно заключить в одинарные кавычки)