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
0 comments
Hide comments