Не понятный результат скрипта автоархивации

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
andycat
Сообщения: 65
Зарегистрирован: 22 фев 2005, 12:06

Не понятный результат скрипта автоархивации

Сообщение andycat » 20 май 2010, 14:28

Добрый день!

FireBird 2.1.3.18185 SS
Windows 2003 Server SP2

есть скрипт автоматической архивации:

Код: Выделить всё

@echo off

set serverIP=127.0.0.1
set FBBinPath="C:\Program Files\Firebird\Firebird_2_1\bin\"
set DBFile="%serverIP%:D:\Hd_DB\hduni.FDB" 
set backupPath=D:\BackUpDB\
set tmpRestore="%backupPath%tmpRestored.fdb"
set logFile="%backupPath%fiberBackup1.log"

for /f "tokens=1-3 delims=./" %%a in ('date /t') do set _date=%%c%%b%%a
if "%_date:~4,1%"==" " (set _date=%_date:~0,4%%_date:~5,4%)

for /f "tokens=1,2 delims=:" %%a in ('time /t') do set _time=%%a%%b
if "%_time:~1,1%"==":" set t=0%_time%

set backupName=fbhdi%_date%%_time%.fbk
set arhiveName=%backupName%.rar



for /l %%a in (0,1,2) do echo .>>%logFile%
echo ________________________________________________________________________>>%logFile%
date /t>>%logFile%
time /t>>%logFile%
echo .>>%logFile%

rem Backup ===========================================

set cmdMessage=echo Starting backup...
%cmdMessage% & %cmdMessage%>>%logFile% 

%FBBinPath%gbak -b -user sysdba -password ****** %DBFile% %backupPath%%backupName% 2>>%logFile%

set cmdError=echo An Error occured while backup. Alarm!
set cmdOK=echo Backup OK.
if not %errorLevel%==0 (%cmdError% & %cmdError%>>%logFile%) else (%cmdOK% & %cmdOK%>>%logFile%)

pause


rem Restore Test======================================

set msg1=echo Starting restore test...
%msg1% & %msg1%>>%logFile%

%FBBinPath%gbak -c -user sysdba -password ****** %backupPath%%backupName% %serverIP%:%tmpRestore% 2>>%logFile%

set cmdError=echo An Error occured while restore. Alarm!
set cmdOK=echo Restore OK.
if not %errorLevel%==0 (%cmdError% & %cmdError%>>%logFile%) else (%cmdOK% & %cmdOK%>>%logFile%)

if exist %tmpRestore% (del %tmpRestore%)

rem GFIX ======================================

set cmdMessage=echo Starting GFIX...
%cmdMessage% & %cmdMessage%>>%logFile% 

%FBBinPath%gfix -sweep -user sysdba -password ****** %DBFile% 2>>%logFile%

set cmdError=echo An Error occured while Sweep. Alarm!
set cmdOK=echo Sweep OK.
if not %errorLevel%==0 (%cmdError% & %cmdError%>>%logFile%) else (%cmdOK% & %cmdOK%>>%logFile%)

rem ----------------------------------------------------------------------------------------------------------------

cd d:\

D:\BackUpDB\FB\rar.exe a -df -ep -ep1 -k -rr %backupPath%%arhiveName% %backupPath%%backupName% 2>>%logFile%

rem if exist %backupPath%%backupName% (del %backupPath%%backupName%)

все работает красиво, но строка
%errorLevel% всегда возвращает 0 :(

т.е. если я например после BackUp'а принудительно испорчу этот файл,
то тестовое Restore мне в лог напишет ошибку, но все равно далее
вываливает %errorLevel%=0

подскажите пожалуйста где ошибка?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Не понятный результат скрипта автоархивации

Сообщение hvlad » 20 май 2010, 14:47

SET сбрасывает ERRORLEVEL ?

andycat
Сообщения: 65
Зарегистрирован: 22 фев 2005, 12:06

Re: Не понятный результат скрипта автоархивации

Сообщение andycat » 20 май 2010, 14:52

hvlad писал(а):SET сбрасывает ERRORLEVEL ?

оказалось - да

все получилось, спасибо

Ответить