Last active
June 30, 2025 16:04
-
-
Save xlimit91/f65431f298555089334ef75b7e39d3bb to your computer and use it in GitHub Desktop.
bulk archive/s crc check + log batch script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @echo off | |
| setlocal enabledelayedexpansion | |
| chcp 65001 >nul | |
| cd /d "%~dp0" | |
| :: 7-Zip Pfad definieren | |
| set "ZIPTOOL=C:\Program Files\7-Zip\7z.exe" | |
| :: Debug-Informationen | |
| echo [DEBUG] Aktuelles Verzeichnis: %CD% | |
| echo [DEBUG] 7-Zip Pfad: %ZIPTOOL% | |
| :: Prüfen ob 7z.exe vorhanden ist | |
| if not exist "%ZIPTOOL%" ( | |
| echo [FEHLER] 7z.exe nicht gefunden unter: "%ZIPTOOL%" | |
| echo [INFO] Bitte prüfen Sie die Installation von 7-Zip | |
| pause | |
| exit /b 1 | |
| ) | |
| echo [OK] 7-Zip gefunden ✅ | |
| :: Dateien zählen (ohne set /a für bessere Kompatibilität) | |
| set zipcount=0 | |
| set rarcount=0 | |
| set szcount=0 | |
| :: Archive im aktuellen Verzeichnis zählen | |
| for %%F in ("*.zip") do if exist "%%F" set /a zipcount+=1 | |
| for %%F in ("*.rar") do if exist "%%F" set /a rarcount+=1 | |
| for %%F in ("*.7z") do if exist "%%F" set /a szcount+=1 | |
| echo. | |
| echo [INFO] Archive im aktuellen Verzeichnis: | |
| echo ZIP-Dateien: %zipcount% | |
| echo RAR-Dateien: %rarcount% | |
| echo 7Z-Dateien: %szcount% | |
| :: Erst alle Archive rekursiv zählen | |
| echo [INFO] Durchsuche alle Unterordner... | |
| set totalfiles=0 | |
| for /R %%A in (*.zip *.7z *.rar) do ( | |
| if exist "%%A" set /a totalfiles+=1 | |
| ) | |
| echo [INFO] Gefunden: %totalfiles% Archive insgesamt | |
| echo. | |
| if %totalfiles% equ 0 ( | |
| echo [WARNUNG] Keine Archive gefunden! | |
| echo [INFO] Überprüfe folgende Dateitypen: *.zip *.7z *.rar | |
| dir /s *.zip *.7z *.rar 2>nul | |
| pause | |
| exit /b 0 | |
| ) | |
| :: Übersicht Header | |
| echo ================================================ | |
| echo FORTSCHRITT ^| STATUS ^| TYP ^| DATEI | |
| echo ================================================ | |
| :: Archive prüfen mit Fortschrittsanzeige | |
| set processed=0 | |
| set errors=0 | |
| for /R %%A in (*.zip *.7z *.rar) do ( | |
| if exist "%%A" ( | |
| set /a processed+=1 | |
| :: Fortschrittsbalken berechnen (20 Zeichen) | |
| set /a progress=!processed!*20/!totalfiles! | |
| set progressbar= | |
| for /L %%P in (1,1,!progress!) do set progressbar=!progressbar!█ | |
| set /a remaining=20-!progress! | |
| for /L %%P in (1,1,!remaining!) do set progressbar=!progressbar!· | |
| :: Archiv testen | |
| set STATUS=OK | |
| set SYMBOL=✅ | |
| "%ZIPTOOL%" t "%%A" >nul 2>&1 | |
| if !errorlevel! neq 0 ( | |
| set STATUS=ERROR | |
| set SYMBOL=❌ | |
| set /a errors+=1 | |
| ) | |
| :: Dateiinfo extrahieren | |
| set "FULLPATH=%%A" | |
| set "EXT=%%~xA" | |
| set "NAME=%%~nxA" | |
| :: Dateinamen kürzen falls zu lang | |
| if "!NAME:~30,1!" neq "" set "NAME=!NAME:~0,27!..." | |
| :: Ausgabe formatieren | |
| echo [!progressbar!] !processed!/%totalfiles% ^| !STATUS! ^| !EXT:~1! ^| !NAME! !SYMBOL! | |
| ) | |
| ) | |
| echo ================================================ | |
| echo [ZUSAMMENFASSUNG] | |
| echo Geprüfte Archive: %processed% | |
| echo Fehlerhafte Archive: %errors% | |
| if %errors% gtr 0 ( | |
| echo ⚠️ Warnung: Fehlerhafte Archive gefunden! | |
| ) else ( | |
| echo ✅ Alle Archive sind in Ordnung | |
| ) | |
| echo. | |
| echo Drücken Sie eine beliebige Taste zum Beenden... | |
| pause >nul |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment