home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR13
/
ZCHECK30.ZIP
/
ZCHECK.BTM
< prev
next >
Wrap
Text File
|
1993-10-22
|
9KB
|
330 lines
@goto init
REM THIS BATCH FILE CHECKS ZIP FILES FOR VIRUSES THIS IS A WORKING VERSION
REM IT IS NOT INTENDED FOR MODIFICATION THE REGISTERED VERSION CONTAINS
REM A FILE FOR EDITING v3.0
:start
color bla on cya
cls
scrput 12 25 bri whi on cya READING %[wd]
if exist hold.lzt del /q hold.lzt
pushd %[wd]
if not exist *.zip goto v6
pushd %[exd]
md $$$~Z
popd^popd
scrput 12 25 bri whi on cya READING %[wd]
%@exec[pkunzip %[wd]\%@line[ext.lzt,%[v]] -d %[exd]\$$$~Z]
if %? gt 2 gosub v7
color bla on cya
cls
:scan
scan %[exd]\$$$~Z /nomem /sub /a /history check.lzt
iff errorlevel == 0 then
gosub v0
elseiff errorlevel == 1 then
gosub v1
elseiff errorlevel == 2 then
gosub v2
elseiff errorlevel == 3 then
gosub v3
elseiff errorlevel == 4 then
goto v4
else gosub v5
endiff
:ddir
pushd %[exd]^erase $$$~Z\*.* /s/x/y
popd
set v=%@eval[%[v] + 1]
if %[v] gt %[t] goto qsel
goto start
:bwin
drawbox 7 14 17 62 2 bri whi on blu fill blu shadow
return
:v0
set chk=%[v]
drawbox 7 14 18 60 2 bri whi on gre fill gre shadow
scrput 9 30 bri yel on gre %@eval[%[chk] + 1] of %@eval[%@lines[ext.lzt] + 1] files
scrput 10 29 bri whi on gre HAVE BEEN SCANNED
scrput 12 29 bri whi on gre NO VIRUS WAS FOUND
scrput 13 19 bri whi on gre THE EXTRACTED FILES WILL NOW BE DELETED
delay 4
cls
return
:v1
set rs=%@eval[%[rs] + 1]
if not exist hold.lzt rem> hold.lzt
echo %@line[%[rsd]\ext.lzt,%[v]] > hold.lzt
iff exist scum.lzt then copy scum.lzt+hold.lzt
else copy hold.lzt scum.lzt
endiff
del /q hold.lzt
cls bri yel on red
drawbox 2 3 22 76 2 BRI YEL ON RED FILL RED SHADOW
scrput 5 32 BLI BRI YEL ON RED VIRUS FOUND
screen 8 13 THE NAME OF THE DISEASED AND INFECTED ARCHIVE HAS BEEN
screen 9 16 COPIED TO A FILE NAMED FOR THE VIRAL AUTHOR SCUM.LZT
screen 12 26 THE INFECTED ARCHIVE IS
scrput 14 32 BRI WHI ON RED %@LINE[%[RSD]\EXT.LZT,%[V]]
screen 16 11 ZCHECK WILL CONTINUE TO CHECK THE REMAINDER OF THE FILES
screen 20 13 THIS IS AN AUTOMATIC SCREEN NO USER INPUT IS REQUIRED
delay 20
cls bla on cya
return
:v2
gosub bwin
scrput 9 27 bri whi on blu SCAN HAS ENDED DUE TO
scrput 10 25 bri whi on blu AN INTERNAL PROGRAM ERROR
scrput 15 27 bri whi on blu ZCHECK WILL CONTINUE
delay 5
cls bla on cya
return
:v3
gosub bwin
scrput 9 23 bri whi on blu SCAN HAS FOUND UNCERTIFIED FILES
scrput 10 25 bri whi on blu OR WAS STOPPED BY THE USER
scrput 11 21 bri whi on blu IF YOU DID NOT STOP SCAN THEN CHECK
scrput 12 20 bri whi on blu FILE CHECK.LZT FOR UNCERTIFIED FILES
scrput 15 27 bri whi on blu ZCHECK WILL CONTINUE
delay 5
return
:v4
gosub bwin
scrput 9 28 bri whi on blu SCAN HAS BEEN ABORTED
scrput 10 25 bri whi on blu USING Ctrl-C or Ctrl-Break
scrput 15 25 bri whi on blu DO YOU WISH TO CONTINUE Y/N
screen 22 0
color cya on cya
inkey /K"yn" %%zz
if %[zz] == y (color bla on cya^goto ddir)
if %[zz] == n (color bla on cya^goto qt2)
goto qt2
:v5
gosub bwin
scrput 9 28 bri whi on blu SCAN HAS RETURNED AN
scrput 11 29 bri whi on blu UNKNOWN ERROR LEVEL
scrput 15 27 bri whi on blu ZCHECK WILL CONTINUE
delay 5
return
:v6
gosub bwin
scrput 9 19 bri whi on blu ZCHECK HAS NOT FOUND ANY .ZIP FILES IN
scrput 10 33 bri whi on blu DIRECTORY
scrput 12 16 bri yel on blu %[wd]
scrput 14 24 bri whi on blu ZCHECK WILL END AUTOMATICALLY
delay 7
goto qt3
:v7
gosub bwin
set zs=%@eval[%[zs + 1]
scrput 9 20 bri whi on blu PKUNZIP HAS TERMINATED WITH AN ERROR
scrput 10 34 bri whi on blu ON FILE
scrput 11 16 bri yel on blu %[wd]\%@line[ext.lzt,%[v]]
scrput 12 19 bri whi on blu ZCHECK WILL COPY THIS FILE NAME TO FILE
scrput 13 32 bri whi on blu BADZIP.LZT
scrput 15 27 bri whi on blu ZCHECK WILL CONTINUE
if not exist hold.lzt rem> hold.lzt
echo %[wd]\%@line[%[rsd]\ext.lzt,%[v]] > hold.lzt
iff exist badzip.lzt then copy badzip.lzt+hold.lzt
else copy hold.lzt badzip.lzt
del /q hold.lzt
delay 3
return
:v9
gosub bwin
scrput 9 27 bri whi on blu PKUNZIP WAS NOT FOUND
scrput 11 27 bri whi on blu ZCHECK CANNOT CONTINUE
scrput 13 27 bri whi on blu PLEASE READ ZCHECK.DOC
scrput 15 30 bri whi on blu ZCHECK WILL END
delay 5
goto qt3
:v10
gosub bwin
scrput 9 29 bri whi on blu SAN WAS NOT FOUND
scrput 11 27 bri whi on blu ZCHECK CANNOT CONTINUE
scrput 13 27 bri whi on blu PLEASE READ ZCHECK.DOC
scrput 15 30 bri whi on blu ZCHECK WILL END
delay 5
goto qt3
:v11
gosub bwin
scrput 9 21 bri whi on blu ZCHECK HAS PROCESSED %@eval[%[t] + 1 ] FILES
scrput 11 20 bri whi on blu ZCHECK HAS FOUND %[zs] PROBLEM ZIP FILES
scrput 13 24 bri whi on blu ZCHECK HAS FOUND %[rs] ZIP FILES
scrput 14 26 bri whi on blu WHICH HOLD INFECTED FILES
scrput 16 28 bri whi on blu PRESS ANY KEY TO QUIT
screen 22 0
inkey %%zz
return
:v12
gosub bwin
scrput 9 16 bri whi on blu ZCHECK HAS FOUND THAT YOU ONLY HAVE %_env BYTES
scrput 10 16 bri whi on blu OF ENVIRONMENT FREE AFTER SETTING YOUR
scrput 11 18 bri whi on blu DIRECTORIES. ZCHECK REQUIRES AT LEAST 45
scrput 12 16 bri whi on blu BYTES AT THIS POINT. YOU MUST INCREASE YOUR
scrput 14 16 bri whi on blu ENVIRONMENT BY AT LEAST A TOTAL OF %@eval[45 - %_env]
scrput 16 27 bri whi on blu ZCHECK WILL NOW END
delay 10
goto qt5
:v13
gosub bwin
scrput 9 25 bri whi on blu FILE ZCHECK.CFG NOT FOUND
scrput 11 27 bri whi on blu ZCHECK CANNOT CONTINUE
scrput 13 27 bri whi on blu PLEASE READ ZCHECK.DOC
scrput 15 30 bri whi on blu ZCHECK WILL END
delay 5
goto qt3
:self
iff exist %_cwd\zcheck.btm then
return
elseiff not "%@search[zcheck.btm]" == "" then
pushd %@path[%@search[zcheck.btm]]
set slf=1
else goto qt4
endiff
return
:init
@echo off
setlocal^unalias *
cls
screen 12 40 T
set sfgc=%_fg
set sbgc=%_bg
gosub self
set rsd=%_cwd
if %1 == ? .or. %1 == h .or. %1 == H goto help
if %1 == error goto erhelp
iff %1 == c .or. %1 == C then
gosub cset
elseiff %1 == z .or. %1 == Z then
gosub cstart
elseiff %# ge 1 then
gosub arg
else gosub argd
endiff
if %_env lt 45 goto v12
if exist zscreen.btm call zscreen.btm
if not exist %_cwd\pkunzip.exe .and. "%@search[pkunzip.exe]" == "" goto v9
if not exist %_cwd\scan.exe .and. "%@search[scan.exe]" == "" goto v10
color bla on cya
pushd %[exd]
if isdir %[exd]\$$$~Z erase $$$~Z\*.* /s/x/y
popd
scrput 12 25 bri whi on cya READING %[wd]
pushd %[wd]
dir /b *.zip > %[rsd]\ext.lzt
popd
rem> zdir$.lzt
echo %[exd] > zdir$.lzt
set t=%@lines[ext.lzt]
set v=0
set zs=0
set rs=0
goto start
:cset
if exist zcheck.cfg del /q zcheck.cfg
if exist hold.lzt del /q hold.lzt
iff %# == 3 then
set wd=%2
set exd=%3
elseiff %# == 2
set wd=%2
set exd=%2
else
gosub argd
endiff
rem>zcheck.cfg
echo %[wd] > zcheck.cfg
echo %[exd] > hold.lzt
copy zcheck.cfg + hold.lzt
del /q hold.lzt
return
:cstart
if not exist zcheck.cfg goto v13
set wd=%@line[zcheck.cfg, 0]
set exd=%@line[zcheck.cfg, 1]
return
:arg
iff %# == 2 then
set wd=%1
set exd=%1
elseiff %# == 1 then
set wd=%1
set exd=%1
endiff
return
:argd
set wd=%_cwd
set exd=%_cwd
return
:clean
pushd %[exd]
if isdir %[exd]\$$$~Z erase $$$~Z\*.* /s/x/y
popd
if exist hold.lzt del /q hold.lzt
if exist ext.lzt del /q ext.lzt
if exist zdir$.lzt del /q zdir$.lzt
return
:unself
if %[slf] == 1 popd
cls %[sfgc] on %[sbgc]
endlocal
return
:qsel
gosub v11
if %[rs] gt 0 goto qt1
goto qt
:qt
gosub clean
gosub unself
quit 0
:qt1
gosub clean
gosub unself
echo Zcheck has terminated with an errorlevel of 1
quit 1
:qt2
gosub clean
gosub unself
echo Zcheck has terminated with an errorlevel of 2
quit 2
:qt3
gosub clean
gosub unself
echo Zcheck has terminated with an errorlevel of 3
quit 3
:qt4
cls %[sfgc] on %[sbgc]
endlocal
echo File %@upper[ZCHECK.BTM] not found on path or in current directory
quit 1
:qt5
gosub clean
gosub unself
echo Zcheck has terminated with an errorlevel of 5
quit 5
:help
cls
screen 4 4 usage zcheck [c][z][?][h][H][error] [d:][path1] [d:][path2]
screen 6 4 where [d:] is the drive
screen 7 4 [path1] is the full path to where the ZIP files are located
screen 8 4 [path2] is the full path to where the ZIP files are to be extracted
screen 9 4 'c' causes ZCHECK to write the drive and paths that follow
screen 10 15 to the file ZCHECK.CFG
screen 11 4 'z' causes ZCHECK to use the file ZCHECK.CFG
screen 12 4 '?' 'h' 'H' provide this screen
screen 13 4 'error' provides a list of error codes
screen 15 4 use one drive and path to set both the same
screen 17 4
quit 6
:erhelp
cls
screen 4 4 ERRORLEVEL 0 Normal Termination NO virus found
screen 5 4 ERRORLEVEL 1 Normal Termination VIRUS found
screen 6 4 ERRORLEVEL 2 Terminated by user
screen 7 4 ERRORLEVEL 3 Terminated by ZCHECK
screen 8 4 ERRORLEVEL 4 Terminated with an internal failure
screen 9 4 ERRORLEVEL 5 Insufficient environment to start
screen 10 4 ERRORLEVEL 6 Normal Termination Help or Error list accessed
screen 11 4
quit 6