@echo off rem ┌─────────────────┐ rem │ ARCHIVE TESTING │ rem └─────────────────┘ IF "%1"=="" GOTO ENDE IF "%2"=="" GOTO ENDE IF "%3"=="" GOTO ENDE IF NOT EXIST %2 GOTO ENDE IF EXIST crcfail.%3 DEL crcfail.%3 >NUL rem *** ARCHIVE BRANCH ******************************************************** IF "%1" == "ZIP" GOTO ZIP IF "%1" == "ARC" GOTO ARC IF "%1" == "ARJ" GOTO ARJ IF "%1" == "LHARC" GOTO LZH IF "%1" == "GIF" GOTO GIF GOTO ENDE rem *** PROCEED ARCHIVE TESTING ********************************************** :ZIP pkunzip -t %2 >NUL if errorlevel 51 goto ARC_ERROR if errorlevel 50 goto DISK_FULL if errorlevel 11 goto NO_FILES if errorlevel 10 goto BAD_COMMAND if errorlevel 9 goto NO_FILES if errorlevel 8 goto NO_MEMORY if errorlevel 3 goto ARC_ERROR if errorlevel 2 goto ARC_ERROR rem *** level 1 is for warnings, have to assume CRC warning *** if errorlevel 1 goto CRC_ERROR GOTO ENDE :ARC pkunpak -t %2 >NUL if errorlevel 1 goto ARC_ERROR GOTO ENDE :ARJ arj t /y %2 >NUL if errorlevel 9 goto INVALID if errorlevel 8 goto NO_MEMORY if errorlevel 7 goto BAD_COMMAND if errorlevel 6 goto ARC_ERROR if errorlevel 5 goto DISK_FULL if errorlevel 4 goto FAIL_VERIFY if errorlevel 3 goto CRC_ERROR if errorlevel 2 goto ARC_ERROR if errorlevel 1 goto ARC_ERROR GOTO ENDE :LZH lha t /m /n2 %2 >NUL if errorlevel == 2 goto ARC_ERROR if errorlevel == 1 goto CRC_ERROR GOTO ENDE :GIF giftest %2 %4 if errorlevel == 255 goto PROG_ERROR if errorlevel == 60 goto ENDE if errorlevel == 25 goto DUPE_CRC if errorlevel == 20 goto MIN_REZ if errorlevel == 10 goto GIF_LITED if errorlevel == 5 goto BAD_COMMAND if errorlevel == 1 goto GIF_FAIL GOTO ENDE rem *** ARCHIVE ERRORS ******************************************************* :CRC_ERROR ECHO CRC ERRORS IN %1! %4 >CRCFAIL.%3 ECHO 1 >>CRCFAIL.%3 GOTO ENDE :ARC_ERROR ECHO ERROR IN %1! %4 >CRCFAIL.%3 ECHO 1 >>CRCFAIL.%3 GOTO ENDE :INVALID ECHO INVALID %1! %4 >CRCFAIL.%3 ECHO 1 >>CRCFAIL.%3 GOTO ENDE :NO_FILES rem Partial Archive? ECHO NO FILES IN %1! %4 >CRCFAIL.%3 ECHO 2 >>CRCFAIL.%3 GOTO ENDE rem *** GIF ERRORS *********************************************************** :GIF_FAIL ECHO INVALID HEADER OR PARTIAL GIF! >CRCFAIL.%3 ECHO 2 >>CRCFAIL.%3 GOTO ENDE :MIN_REZ ECHO FAILED MINIMUM RESOLUTION! >CRCFAIL.%3 ECHO 1 >>CRCFAIL.%3 GOTO ENDE :DUPE_CRC ECHO DUPLICATE CRC FOUND! >CRCFAIL.%3 ECHO 1 >>CRCFAIL.%3 GOTO ENDE :GIF_LITED rem Tells GIF-LITE not to bother ECHO PASSED (GIF-LITE'd) >CRCFAIL.%3 ECHO -1 >>CRCFAIL.%3 GOTO ENDE rem *** WARNINGS ************************************************************* :NO_MEMORY ECHO WARNING - INSUFFICIENT MEMORY!!! >CRCFAIL.%3 ECHO 0 >>CRCFAIL.%3 GOTO ENDE :FAIL_VERIFY ECHO WARNING - FAILED VERIFICATION! >CRCFAIL.%3 ECHO 0 >>CRCFAIL.%3 GOTO ENDE :BAD_COMMAND ECHO WARNING - ILLEGAL COMMAND!!! >CRCFAIL.%3 ECHO 0 >>CRCFAIL.%3 GOTO ENDE :DISK_FULL ECHO WARNING - DISK FULL!!! >CRCFAIL.%3 ECHO 0 >>CRCFAIL.%3 GOTO ENDE :PROG_ERROR ECHO WARNING - PROGRAM ERROR!!! >CRCFAIL.%3 ECHO 0 >>CRCFAIL.%3 GOTO ENDE rem *** END OF BATCH ********************************************************* :ENDE