Skip to content

Instantly share code, notes, and snippets.

@xlimit91
Last active June 30, 2025 16:04
Show Gist options
  • Select an option

  • Save xlimit91/f65431f298555089334ef75b7e39d3bb to your computer and use it in GitHub Desktop.

Select an option

Save xlimit91/f65431f298555089334ef75b7e39d3bb to your computer and use it in GitHub Desktop.
bulk archive/s crc check + log batch script
@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