Bat-файл для архивации базы 1С

Чтобы не копировать вручную базу 1С можно сделать bat-файл и настроить его запуск через Планировщик заданий Windows.

@echo off
chcp 1251
Setlocal EnableDelayedExpansion
Set katalogarhiv=<Указываем путь папке где будет находиться архив>
Set katalog=<Указываем путь к базе>
Set t=30
Rem _______________________________________________________________________________
Echo %Date% >>%katalogarhiv%\log.txt
Rem md %katalogarhiv%\%date%>>%katalogarhiv%\log.txt
Rem xcopy /i /v /s /e /t /y “%katalog%\1Cv8FTxt” “%katalogarhiv%\%date%\1Cv8FTxt”>>%katalogarhiv%\log.txt
Rem xcopy /i /v /s /e /t /y “%katalog%\1Cv8Log” “%katalogarhiv%\%date%\1Cv8Log”>>%katalogarhiv%\log.txt
Rem copy /v /y “%katalog%\1Cv8.1CD” “%katalogarhiv%\%date%\1Cv8.1CD”>>%katalogarhiv%\log.txt
“%system%\program files\7-Zip\7z.exe” a -tzip -ssw -mx5 -r0 “%katalogarhiv%\%date%.zip” “%katalog%\1Cv8.1CD” >>%katalogarhiv%\log.txt
Rem rd /s /q %katalogarhiv%\%date%
Call :DAYS_DATE %DATE% T1
for %%B in (“%katalogarhiv%\*.zip”) do (
Set File=%%B
set dt=%%~tB
( @for /f “tokens=1” %%a in (“!dt!”) do (set d=%%a)
Call :DAYS_DATE !d! T2
Set /A T3=%T1%-!T2!
if !T3! GTR %t% (del !File!>>%katalogarhiv%\log.txt)
))
Exit /b
:DAYS_DATE
Set T_DATE=%1
If %T_DATE:~0,1%==0 (Set T_DAY=%T_DATE:~1,1%) Else Set T_DAY=%T_DATE:~0,2%
If %T_DATE:~3,1%==0 (Set T_MONTH=%T_DATE:~4,1%) Else Set T_MONTH=%T_DATE:~3,2%
Set T_YEAR=%T_DATE:~6,4%
Set /A M1=T_YEAR%%4
If 0 EQU %M1% ( Set $MD=31 29 31 30 31 30 31 31 30 31 30 31 ) else (Set $MD=31 28 31 30 31 30 31 31 30 31 30 31)
For /F “Tokens=1-%T_MONTH% Delims= ” %%A In (“%$MD%”) Do (
if 1 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=0
if 2 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A
if 3 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B
if 4 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C
if 5 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D
if 6 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E
if 7 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E+%%F
if 8 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E+%%F+%%G
if 9 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E+%%F+%%G+%%H
if 10 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E+%%F+%%G+%%H+%%I
if 11 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E+%%F+%%G+%%H+%%I+%%J
if 12 EQU %T_MONTH% Set /A MONTH_HAD_PASSED=%%A+%%B+%%C+%%D+%%E+%%F+%%G+%%H+%%I+%%J+%%K)
Set /A YEARS_HAD_PASSED=(((T_YEAR-1)/4)*366)+(((T_YEAR-1)-((T_YEAR-1)/4))*365)
Set /A DAYS=%YEARS_HAD_PASSED%+%MONTH_HAD_PASSED%+%T_DAY%
Set %2=%DAYS%
GOTO :EOF

Скачать готовый bat-файл.

Нажмите на звезду, чтобы оценить!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Может быть Вам интересно
Многообразие и доступность различных недорогих аппаратных платформ, таких как Arduino,…