@Echo off
cls

if exist pcbpass.txt del pcbpass.txt
if exist pcbfail.txt del pcbfail.txt

ARCID %1 ARC ARJ HYP LZH PAK RAR SQZ ZIP ZOO GIF
if errorlevel 98 goto UNKNOWN
if errorlevel 10 goto GIF_TESTING
if errorlevel 9  goto ZOO_TESTING
if errorlevel 8  goto ZIP_TESTING
if errorlevel 7  goto SQZ_TESTING
if errorlevel 6  goto RAR_TESTING
if errorlevel 5  goto PAK_TESTING
if errorlevel 4  goto LZH_TESTING
if errorlevel 3  goto HYP_TESTING
if errorlevel 2  goto ARJ_TESTING
if errorlevel 1  goto ARC_TESTING

Echo ERROR: ARCID critical error...please notify sysop! > pcbfail.txt
exit

:UNKNOWN
Echo ERROR: Unknown file format! > pcbfail.txt
exit

:ARC_TESTING
md testing
cd testing
pkunpak -r %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:ARJ_TESTING
md testing
cd testing
arj e -y %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:HYP_TESTING
md testing
cd testing
hyper -x %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:LZH_TESTING
md testing
cd testing
lha e /m1 %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:PAK_TESTING
md testing
cd testing
pak e /wa %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:RAR_TESTING
md testing
cd testing
rar e -o+ -y -std %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:SQZ_TESTING
md testing
cd testing
sqz e %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:ZIP_TESTING
md testing
cd testing
pkunzip -o %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:ZOO_TESTING
md testing
cd testing
zoo e %1
if not errorlevel 0 goto ERROR1
scan /a /nomem /nopause *.*
if not errorlevel 0 goto ERROR2
goto OK

:GIF_TESTING
giftest /b:0 %1
if not errorlevel 0 goto ERROR1

:OK
cd ..
echo y|del testing\*.*
rd testing
Echo Archive passed all tests... > pcbpass.txt
exit

:ERROR1
echo y|del testing\*.*
rd testing
Echo ERROR: Archive failed integrity test... > pcbfail.txt
exit

:ERROR2
echo y|del testing\*.*
rd testing
Echo ERROR: Archive failed virus test... > pcbfail.txt
