Metropoli BBS
VIEWER: crctest.bat MODE: TEXT (CP437)
@echo off
rem  ┌─────────────────┐ 
rem  │ ARCHIVE TESTING │
rem  └─────────────────┘ 
IF "%1"=="" GOTO ENDE
IF "%2"=="" GOTO ENDE
IF "%3"=="" GOTO ENDE
IF "%4"=="" GOTO ENDE
IF NOT EXIST %3 GOTO ENDE
IF EXIST crcfail.%4 DEL crcfail.%4 >NUL
rem 1=archiver 2=Ext 3=filespec 4=node 5=embedded or parameters

rem *** ARCHIVE BRANCH ********************************************************

IF "%2" == "ZIP" GOTO ZIP
IF "%2" == "ARC" GOTO ARC
IF "%2" == "ARJ" GOTO ARJ
IF "%2" == "LHARC" GOTO LZH
IF "%2" == "PAK" GOTO PAK
IF "%2" == "RAR" GOTO RAR
IF "%2" == "TD0" GOTO TD0
IF "%2" == "GFXCHK" GOTO GFXCHK
GOTO ENDE

rem *** PROCEED ARCHIVE TESTING **********************************************

:ZIP
%1 -t %3 >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
%1 -t %3 >NUL
if errorlevel 1 goto ARC_ERROR
GOTO ENDE

:PAK
%1 t %3 >NUL
if errorlevel 1 goto ARC_ERROR
GOTO ENDE
 
:ARJ
%1 t /y %3 >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
%1 t /m /n2 %3 >NUL
if errorlevel == 2 goto ARC_ERROR
if errorlevel == 1 goto CRC_ERROR
GOTO ENDE

:RAR
%1 t -y %3 >NUL
if errorlevel == 255 goto PROG_ERROR
if errorlevel == 8 goto NO_MEMORY
if errorlevel == 7 goto BAD_COMMAND
if errorlevel == 6 goto PROG_ERROR
if errorlevel == 5 goto DISK_FULL
if errorlevel == 4 goto LOCKED
if errorlevel == 3 goto CRC_ERROR
if errorlevel == 2 goto ARC_ERROR
if errorlevel == 1 goto WARNING
goto ENDE

:TD0
tdcheck %3 >NUL
if errorlevel 1 goto ARC_ERROR
GOTO ENDE

:GFXCHK
%1 -cGFXCHK.CFG -f%3 -Q
if errorlevel == 1 goto GIF_FAIL
goto ENDE


rem *** ARCHIVE ERRORS *******************************************************

:CRC_ERROR
ECHO CRC ERRORS IN %2! %5 >CRCFAIL.%4
ECHO 1 >>CRCFAIL.%4
GOTO ENDE

:ARC_ERROR
ECHO ERROR IN %2! %5 >CRCFAIL.%4
ECHO 1 >>CRCFAIL.%4
GOTO ENDE

:INVALID
ECHO INVALID %2! %5 >CRCFAIL.%4
ECHO 1 >>CRCFAIL.%4
GOTO ENDE

:NO_FILES
rem  Partial Archive?
ECHO NO FILES IN %2! %5 >CRCFAIL.%4
ECHO 2 >>CRCFAIL.%4
GOTO ENDE

:GIF_FAIL
ECHO FILE FAILED GFXCHECK!!! >CRCFAIL.%4
ECHO 2 >>CRCFAIL.%4
GOTO ENDE

rem *** WARNINGS *************************************************************

:NO_MEMORY
ECHO WARNING - INSUFFICIENT MEMORY!!! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

:FAIL_VERIFY
ECHO WARNING - FAILED VERIFICATION! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

:WARNING
ECHO WARNING - NON FATAL ERROR(S)! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

:LOCKED
ECHO WARNING - ARCHIVE LOCKED! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

:BAD_COMMAND
ECHO WARNING - ILLEGAL COMMAND! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

:DISK_FULL
ECHO WARNING - DISK FULL!!! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

:PROG_ERROR
ECHO WARNING - PROGRAM ERROR!!! >CRCFAIL.%4
ECHO 0 >>CRCFAIL.%4
GOTO ENDE

rem *** END OF BATCH *********************************************************
:ENDE

[ RETURN TO DIRECTORY ]