Тескт CMD-файла в кодировке WIN:
@echo off
SET SRV=localhost
SET BASE=UT82
SET User1C=Automat
SET PWDUser1C=Automat
SET BackUpPath=F:\BackUpDataBase\“’_10.3
SET BackUpPath2=\\SRV_BackUp\Backup_1C\“’_10.3
SET Days_Archive=365
SET Days_Archive2=30
SET DriveNet=U:
SET UserNet=Domen\User_SRV_BackUp
SET PWDUserNet=PWD_User_SRV_BackUp
SET FileTime=%TIME:~0,-3%
SET FileTime=%FileTime::=%
SET FileTime=%FileTime: =0%
SET BackUpFileName=%BASE%-%date:~-4%%date:~3,2%%date:~0,2%-%FileTime%.dt
SET BackUpPathString=%BackUpPath%\%BackUpFileName%
call "%odinCdir%\1cv8.exe" ENTERPRISE /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў ⥫Ґ©" /UC"Љ®¤ђ §аҐиҐЁп"
call "%odinCdir%\1cv8.exe" DESIGNER /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /UC"Љ®¤ђ §аҐиҐЁп" /DumpIB "%BackUpPathString%"
call "%odinCdir%\1cv8.exe" ENTERPRISE /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"ђ §аҐиЁвмђ Ў®вгЏ®«м§®ў ⥫Ґ©" /UC"Љ®¤ђ §аҐиҐЁп"
forfiles /P "%BackUpPath%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive%
NET USE %DriveNet% %BackUpPath2% /USER:%UserNet% %PWDUserNet%
robocopy "%BackUpPath%" "%DriveNet%" "*.dt" /MAXAGE:%Days_Archive2% /Z /R:5
ping -5 127.0.0.1
forfiles /P "%DriveNet%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive2%
ping -5 127.0.0.1
NET USE %DriveNet% /DEL /Y
Описание строк файла:
SET SRV=localhost - путь к серверу 1С
SET BASE=UT82 - имя базы на сервере 1С
SET User1C=Automat - имя пользователя с правами администратора
SET PWDUser1C=Automat - пароль пользователя с правами администратора
SET BackUpPath=F:\BackUpDataBase\“’_10.3 - путь к папке для архивирования на локальном компьютере
SET BackUpPath2=\\SRV_BackUp\Backup_1C\“’_10.3 - путь к папке для архивирования на удаленном компьютере
SET Days_Archive=365 - число дней хранения архивов на локальном компьютере
SET Days_Archive2=30 - число дней хранения архивов на удаленном компьютере
SET DriveNet=U: - имя подключаемого диска для пути BackUpPath2
SET UserNet=Domen\User_SRV_BackUp - пользователь для доступа к удаленному серверу архивирования
SET PWDUserNet=PWD_User_SRV_BackUp - пароль пользователя для доступа к удаленному серверу архивирования
Блок получения пути и имени файла архива по имени базы 1С, даты и времени архивирования:
SET FileTime=%TIME:~0,-3%
SET FileTime=%FileTime::=%
SET FileTime=%FileTime: =0%
SET BackUpFileName=%BASE%-%date:~-4%%date:~3,2%%date:~0,2%-%FileTime%.dt
SET BackUpPathString=%BackUpPath%\%BackUpFileName%
Вызов 1С для завершения работы пользователей (odinCdir - глобальная переменная - путь к папке 1С\bin):
call "%odinCdir%\1cv8.exe" ENTERPRISE /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў ⥫Ґ©" /UC"Љ®¤ђ §аҐиҐЁп"
Вызов 1С для архивирования:
call "%odinCdir%\1cv8.exe" DESIGNER /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /UC"Љ®¤ђ §аҐиҐЁп" /DumpIB "%BackUpPathString%"
Вызов 1С для разрешения работы пользователей:
call "%odinCdir%\1cv8.exe" ENTERPRISE /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"ђ §аҐиЁвмђ Ў®вгЏ®«м§®ў ⥫Ґ©" /UC"Љ®¤ђ §аҐиҐЁп"
Удаление файлов из папки "BackUpPath" с датой больше "Days_Archive" дней:
forfiles /P "%BackUpPath%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive%
Подключение сетевого диска (необходимо т.к. forfiles - не работает с UNC-путями):
NET USE %DriveNet% %BackUpPath2% /USER:%UserNet% %PWDUserNet%
Копирование *.dt-файлов на удаленный сервер из локального каталога архивирования с датой не старше дней "Days_Archive2" (вдруг их там кто-то случайно подтёр :) ):
robocopy "%BackUpPath%" "%DriveNet%" "*.dt" /MAXAGE:%Days_Archive2% /Z /R:5
ping -5 127.0.0.1 - пауза
Удаление файлов из папки "BackUpPath2" с датой больше "Days_Archive2" дней:
forfiles /P "%DriveNet%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive2%
ping -5 127.0.0.1 -пауза
NET USE %DriveNet% /DEL /Y - отключение сетевого диска
______________________________________________________________________________
Пример архивирования для файловой базы 1С:
SET BASE_PATH=F:\BASE82\BP82_Extern
SET BASE=BUH_Extern
SET User1C=Automat
SET PWDUser1C=Automat
SET BackUpPath=F:\BackUpDataBase\ЃгеЈ «вҐаЁп_2.0_(ўҐиЁҐ)
SET BackUpPath2=\\SRV_BackUp\Backup_1C\ЃгеЈ «вҐаЁп_2.0_(ўҐиЁҐ)
SET Days_Archive=365
SET Days_Archive2=30
SET DriveNet=U:
SET UserNet=Domen\User_SRV_BackUp
SET PWDUserNet=PWD_User_SRV_BackUp
SET FileTime=%TIME:~0,-3%
SET FileTime=%FileTime::=%
SET FileTime=%FileTime: =0%
SET BackUpFileName=%BASE%-%date:~-4%%date:~3,2%%date:~0,2%-%FileTime%.dt
SET BackUpPathString=%BackUpPath%\%BackUpFileName%
call "%odinCdir%\1cv8.exe" ENTERPRISE /F"%BASE_PATH%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў ⥫Ґ©" /UC"Љ®¤ђ §аҐиҐЁп"
call "%odinCdir%\1cv8.exe" DESIGNER /F"%BASE_PATH%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /UC"Љ®¤ђ §аҐиҐЁп" /DumpIB "%BackUpPathString%"
call "%odinCdir%\1cv8.exe" ENTERPRISE /F"%BASE_PATH%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"ђ §аҐиЁвмђ Ў®вгЏ®«м§®ў ⥫Ґ©" /UC"Љ®¤ђ §аҐиҐЁп"
forfiles /P "%BackUpPath%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive%
NET USE %DriveNet% %BackUpPath2% /USER:%UserNet% %PWDUserNet%
robocopy "%BackUpPath%" "%DriveNet%" "*.dt" /MAXAGE:%Days_Archive2% /Z /R:5
ping -5 127.0.0.1
forfiles /P "%DriveNet%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive2%
ping -5 127.0.0.1
NET USE %DriveNet% /DEL /Y
* - Вопросы с кодировкой (русскими именами папок) решаются с помощью Far (клавиша F8 - смена кодировки) или Word (файл открывается с кодировкой MS-DOS)