NOTE: See A better way to delete empty sub-folders in a directory tree.

If have scripted DelMT.bat to delete empty sub-folders in a directory tree?

The syntax for using DelMT.bat is:

DelMT Directory

Where Directory is the top level directory use wish to purge of empty sub-folders.

NOTE: DelMT.bat displays the sub-folders that it deletes on the CMD.EXE console window.

NOTE: For non-English versions of Windows, replace File and Dir in the Findstr command.

DelMT.bat contains:

                              @echo off                              if \{%1\}==\{\} @echo Syntax DelMT Folder&goto :EOF                              if not exist %1 @echo Syntax DelMT Folder - %1 not found.&goto :EOF                              setlocal ENABLEDELAYEDEXPANSION                              set folder=%1                              set delSW=N                              if exist "%TEMP%\DelMT.TM1" del /q "%TEMP%\DelMT.TM1"                              if exist "%TEMP%\DelMT.TM2" del /q "%TEMP%\DelMT.TM2"                              set /a cnt=10000000                              for /f "Tokens=*" %%f in ('dir %folder% /AD /S /b') do (                               call :IsMT1 "%%f"                              )                              if not exist "%TEMP%\DelMT.TM1" endlocal&goto :EOF                              sort /R "%TEMP%\DelMT.TM1" /O "%TEMP%\DelMT.TM2"                              del /q "%TEMP%\DelMT.TM1"                              for /f "Tokens=1*" %%f in ('type "%TEMP%\DelMT.TM2"') do (                               call :IsMT2 %%g                              )                              del /q "%TEMP%\DelMT.TM2"                              endlocal                              goto :EOF                              :IsMT1                              set /a cnt=%cnt% + 1                              @echo %cnt% %1>>"%TEMP%\DelMT.TM1"                              goto :EOF                              :IsMT2                              pushd %1                              set /a numb=0                              for /f "Tokens=*" %%a in ('dir /a^|findstr /L /c:" 0 File" /c:" 2 Dir"') do (                               set /a numb=!numb! + 1                              )                              popd                              if %numb% NEQ 2 goto :EOF                              rd /q %1                               @echo Deleted %1