View Single Post
Old 18-09-2007, 03:55 PM   #9
So9
Forum hobbit

 
Join Date: Feb 2006
Location: Anirnar, Faroe Islands
Posts: 42
Default

this is an optimized version of the script with zip and rar support

Code:
@ECHO OFF
REM Init LogFile
SET MYLOG=logfile_%DATE:~-10%.txt
ECHO. > %MYLOG%

CALL :ADDLOG "--------------------------------------------------------------"
CALL :ADDLOG "Archive-Check 0.1**************************************"
CALL :ADDLOG "--------------------------------------------------------------"

REM Path to Commandlineversion
REM download 7za from http://downloads.sourceforge.net/sevenzip/7za442.zip
SET MYZIP="%ProgramFiles%\7-zip\7za.exe"
SET MYRAR="%ProgramFiles%\batchfiles\rar.exe"

REM Check for ZipExe
IF NOT EXIST %MYZIP% GOTO :NOEXE %MYZIP%
IF NOT EXIST %MYRAR% GOTO :NOEXE %MYRAR%

REM ask User for basepath or use current
ECHO enter directory to scan [return for %CD%]
SET MYROOT=
SET /P MYROOT=
IF (%MYROOT%) EQU () SET MYROOT="%CD%"

REM Ask for Scanmode (Fast=Open and List Contents/Deep=CRC)
ECHO Scanmode (F)ast or (D)eep [Deep]
SET /P SCANMODE=
IF /I (%SCANMODE%) EQU (f) (SET SCANMODE=Fast) ELSE (SET SCANMODE=Deep)

REM Set ScanSwitches
IF /I (%SCANMODE%) EQU (Deep) (
SET SWZIP=t
SET SWRAR=t
) ELSE (
SET SWZIP=l
SET SWRAR=l
)

REM Add Command-Switch
SET MYZIP=%MYZIP% %SWZIP%
SET MYRAR=%MYRAR% %SWRAR%

REM Here we go
CALL :ADDLOG "--------------------------------------------------------------"
CALL :ADDLOG "RootDir : %MYROOT%"
CALL :ADDLOG "Mode****: %SCANMODE%"
CALL :ADDLOG "RAREXE**: %MYRAR%"
CALL :ADDLOG "ZIPEXE**: %MYZIP%"
CALL :ADDLOG "--------------------------------------------------------------"
CALL :ADDLOG "Started : %TIME% / %DATE%"

REM SCAN ALL ZIP FILES
FOR /R %MYROOT% %%f IN (*.rar) DO CALL :SCANRAR "%%f"
FOR /R %MYROOT% %%f IN (*.zip) DO CALL :SCANZIP "%%f"

CALL :ADDLOG "Stopped : %TIME% / %DATE%"
IF EXIST USELESS.$$$ DEL USELESS.$$$
GOTO :EOF

REM ####################################################################
REM # Scan Archives
REM ####################################################################

:SCANZIP
@CALL %MYZIP% %1 > USELESS.$$$
SET /A ERROR=%ERRORLEVEL%

REM Log and Remove
IF %ERROR% EQU 0 CALL :ADDLOG "%1 OK"
IF %ERROR% NEQ 0 CALL :REMOVEIT %1
GOTO :EOF

:SCANRAR
@CALL %MYRAR% %1 > USELESS.$$$
SET /A ERROR=%ERRORLEVEL%

REM Log and Remove
IF %ERROR% EQU 0 CALL :ADDLOG "%1 OK"
IF %ERROR% NEQ 0 CALL :REMOVEIT %1
GOTO :EOF

REM ####################################################################
REM #Subfunktions
REM ####################################################################

:REMOVEIT
REM Uncomment DEL to remove corrupt files
CALL :ADDLOG "%1 CORRUPT"
REM DEL %1
GOTO :EOF

:NOEXE
ECHO %1 not found
GOTO :EOF

:ADDLOG
SET LOGOUT=%1
SET LOGOUT=%LOGOUT:"=%
ECHO %LOGOUT%
ECHO %LOGOUT% >> %MYLOG%
GOTO :EOF
__________________

So9 is offline                         Send a private message to So9
Reply With Quote