
Ich bin jetzt ein neuer "Frischling" in diesem Forum, also korrigiert mich bitte, fals ich etwas falsch mache.
Ich hatte letztens die Idee eine Batch zu programmieren, die alle leeren Ordner findet und evt. auch löschen sollte (je nachdem wo sich die Ordner befinden).
@echo off
mode con cols=102 lines=50
title EmptyDirectoriesDeleter
setlocal EnableExtensions EnableDelayedExpansion
color a
cls
set empty=0
cd C:\
set alldirectories=0
echo Scanning
for /f %%a in ('dir /s /b /ad') DO (
set /a alldirectories=!alldirectories!+1
)
echo Initalizing
for /l %%b in (1,1,100) DO (
set b=%%b
set /a a!b!=!alldirectories!/!b!
)
set scanneddirectories=0
echo Second Scanning
for /f %%i in ('dir /s /b /ad') DO (
set /a scanneddirectories=!scanneddirectories!+1
for /l %%c in (1,1,100) DO (
set c=%%c
set int=a+%%c
if %int% GEQ !scanneddirectories! (
set b!c!=²
) else (
set b!c!=°
)
)
cls
echo ³!b1!!b2!!b3!!b4!!b5!!b6!!b7!!b8!!b9!!b10!!b11!!b12!!b13!!b14!!b15!!b16!!b17!!b18!!b19!!b20!!b21!!b22!!b23!!b24!!b25!!b26!!b27!!b28!!b29!!b30!!b31!!b32!!b33!!b34!!b35!!b36!!b37!!b38!!b39!!b40!!b41!!b42!!b43!!b44!!b45!!b46!!b47!!b48!!b49!!b50!!b51!!b52!!b53!!b54!!b55!!b56!!b57!!b58!!b59!!b60!!b61!!b62!!b63!!b64!!b65!!b66!!b67!!b68!!b69!!b70!!b71!!b72!!b73!!b74!!b75!!b76!!b77!!b78!!b79!!b80!!b81!!b82!!b83!!b84!!b85!!b86!!b87!!b88!!b89!!b90!!b91!!b92!!b93!!b94!!b95!!b96!!b97!!b98!!b99!!b100!³
echo.
echo Scanned Directories: !scanneddirectories!
echo Empty Directories: !empty!
echo.
echo All Directories: !alldirectories!
cd "%%i"
dir | find "0 Datei(en)" >nul
if %ERRORLEVEL%==0 (
dir | find "2 Verzeichnis(se)" >nul
if ERRORLEVEL 1 (
echo %%i >> %userprofile%\Desktop\empty_directories.txt
set /a empty=!empty!+1
)
)
)
cls
del %userprofile%\Desktop\empty_directories.txt
echo !empty! leere Verzeichnisse wurden gefunden
pause
Fals ich was falsch geschrieben haben sollte, beachtet es einfach nicht.
Das Programm stoppt aber immer bei:
if %int% GEQ !scanneddirectories!
Grund: "!scanneddirectories!" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
2. Grund: Die Variable "int" hat keinen Wert.
Danke für jede Hilfe schonmal im Voraus
