@echo off taskkill /F /FI "ImageName eq 1c*" set source="d:\Base" set destination="E:\Backup\1c" set name=Company_1c rem Ниже ничего не трогать set dd=%DATE:~0,2% set mm=%DATE:~3,2% set yyyy=%DATE:~6,4% set hh=%TIME:~0,2% if "%hh:~0,1%"==" " set hh=0%hh:~1,1% set min=%TIME:~3,2% set curdate=%dd%-%mm%-%yyyy%_%hh%-%min% "C:\Program Files\7-Zip\7z.exe" a -t7z -ssw -mx5 %destination%\%curdate%_%name% %source% copy %destination%\%dd%-%mm%* E:\Backup_in_Cloud exit /b 0
-x Исключить файлы или папки из архива по имени или маске.
-xr@exclude.txt
В файле exclude.txt прописываем
1c7 MedocStattion TestBase 2024-03-06-14-38_11.02.135_37203325.ZBK
То есть исключаем каталоги 1c7, MedocStattion, TestBase
файл 2024-03-06-14-38_11.02.135_37203325.ZBK
*.tmp - все файлы с расширением tmp.
Кирилица в именах:
Проверьте кодировку файла exclude.txt. Убедитесь, что файл сохранен в кодировке UTF-8 (без BOM).
Чтобы проверить и изменить кодировку: Откройте файл в текстовом редакторе, например, Notepad++. Выберите Encoding → UTF-8 (если выбран другой тип, измените на UTF-8). Сохраните файл.
Используйте параметр -scsUTF-8
7z a -xr@"exclude.txt" -scsUTF-8 G:\backup.7z E:\Base_1C\
-mx1: Этот параметр задает уровень сжатия.начение 1 означает минимальное сжатие, что приводит к более быстрому архивированию, но файлы будут занимать больше места. Возможные значения варьируются от 0 (без сжатия) до 9 (максимальное сжатие).
-ssw: Этот параметр указывает, что 7-Zip будет создавать резервные копии открытых файлов (например, если файл открыт в приложении, он будет заархивирован, чтобы сохранить его состояние).
- r Рекурсивное архивирование для папок. Задается числом от 0 (все каталоги) до количества уровней каталогов, которые нужно включить в архив.
rem сколько дней хранить копии set /a iCount = 20 set destination="D:\Medoc_backup\db" rem Ниже ничего не трогать setlocal enableextensions enabledelayedexpansion for /f "skip=%iCount% usebackq delims=" %%i in ( `dir /b /a:-d /o:-d /t:w "%destination%"` ) do del /f /q "%destination%\%%~i" endlocal
taskkill /F /FI "ImageName eq Open*"
chcp 1251
Пути заключать в "кавычки"
robocopy C:\base Z:\ /MIR /R:5 /W:10
@echo off taskkill /F /FI "ImageName eq 1c*" set DRIVE=D: set FROM=\Bace_1c set OUT=H:\backup_base set COUNT_FOLDER=10 rem DRIVE= имя диска,ОТКУДА будем архивировать rem FROM= каталог, который будем архивировать. БЕЗ ИМЕНИ ДИСКА rem OUT= каталог, в который будем архивировать rem COUNT_FOLDER сколько каталогов оставить rem ---------------------Constanta------------------------------ rem Записываем текущую дату в переменную %CUR_DATE_TIME% set CUR_DATE_TIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%time:~0,2%-%time:~3,2% set CUR_DATE_TIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% rem Переопределяем выходной каталог set OUT=%OUT%\%CUR_DATE_TIME% rem For viwe test cls echo DRIVE=%DRIVE% echo FROM=%FROM% echo OUT=%OUT% echo ------------------------- rem Архивируем в каталог mkdir %OUT% %DRIVE% for /d %%X in (%FROM%\*) do "c:\Program Files\7-Zip\7z.exe" a -ssw -mx7 "%OUT%\%%X.7z" "%%X\" rem оставить %COUNT_FOLDER% самых свежик каталога cd /d %OUT% cd .. dir /O-D /AD /B > files.txt for /f "skip=%COUNT_FOLDER% delims=" %%G in (files.txt) do rmdir /q/s "%%G" rem backup_remote set OUT=H:\backup_remote\ set COUNT_FOLDER=2 set OUT=%OUT%\%CUR_DATE_TIME% mkdir %OUT% %DRIVE% for /d %%X in (%FROM%\*) do "c:\Program Files\7-Zip\7z.exe" a -ssw -mx7 "%OUT%\%%X.7z" "%%X\" rem оставить %COUNT_FOLDER% самых свежик каталога cd /d %OUT% cd .. dir /O-D /AD /B > files.txt for /f "skip=%COUNT_FOLDER% delims=" %%G in (files.txt) do rmdir /q/s "%%G" exit 0