@echo off
cls
SET id=0
SET dateid=0
SET status=0
SET curdate=%date:~-4%-%date:~3,2%-%date:~0,2%
SET PROBACKUP=c:\pg_probackup
set var=0
set mytmp=d:
rem set mytmp=%temp%
rem вывести результат show в файл
"c:\Program Files\Pg_ProBackup\2.0.27\pg_probackup" show -B %PROBACKUP% > %mytmp%\id.txt
rem вывести каждую строку
For /F "delims=" %%i in ( %mytmp%\id.txt) do (
echo %%i > %mytmp%\id1.txt
rem echo %%i
rem findstr /C:"data " %mytmp%\id2.txt && echo poymal||echo ne poymal
rem найти первую строку c "data "
findstr /C:"data " %mytmp%\id1.txt > NULL
rem если нашли первую строку c "data " уходим из цикла
IF NOT ERRORLEVEL 1 (Goto:Error)
)
rem ничего не нашли уходим из программы
exit
:Error
rem type %mytmp%\id2.txt
echo Found.
rem получить ID последнего архива
FOR /F "tokens=3,* delims= " %%j IN (%mytmp%\id2.txt) do set id=%%j
echo %id%
rem получить date последнего архива
FOR /F "tokens=4,* delims= " %%k IN (%mytmp%\id2.txt) do set dateid=%%k
echo %dateid%
rem получить status последнего архива
FOR /F "tokens=15,* delims= " %%l IN (%mytmp%\id2.txt) do set status=%%l
echo %status%
echo 12345
SET BACKUPDIR=d:\backup
SET DIR=%PROBACKUP%\backups\data\%id%
echo %DIR%
SET NAME=%id%
SET FILENAME=%BACKUPDIR%\%date:~-4%_%date:~3,2%_%date:~0,2%_%NAME%.7z
echo %FILENAME%
SET PATH_7Z=d:\7z
echo %PATH_7Z%
SET PASSWORD=VZZETcB1eI
echo %PASSWORD%
SET LOG=%BACKUPDIR%\%date:~-4%_%date:~3,2%_%date:~0,2%_%NAME%.log
echo %LOG%
rem если дата архива , статус и имя OK
if %dateid%==%curdate% (
rem если статус архива OK
if %status%==OK (
rem если id архива OK
if NOT %id%==0 (
rem CALL %PATH_7Z%\7za.exe a %FILENAME% -mmt8 -mx1 -t7z -v2000m %DIR%\* -p%PASSWORD% >%LOG% 2>&1
CALL %PATH_7Z%\7za.exe a %FILENAME% -mmt8 -mx1 -t7z %DIR% >%LOG% 2>&1
)
)
)
pause
Комментариев нет:
Отправить комментарий