Backup

FreeFileSync

Упаковать каталог

@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*"

Кирилица

  1. Можно создать символичекую ссылку

    mklink /j c:\intel\Vasya_link c:\Вася

  2. chcp 1251

    Пути заключать в "кавычки"

Резервное копирования с помощью Robocopy

robocopy C:\base Z:\ /MIR /R:5 /W:10

UNAC. Запаковать каждую базу в отдельный каталог

@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

Упаковать каждый файл в отдельный архив. SQL базы Him

Удалить оригинальные файлы после упаковки -sdel

@echo off
setlocal enabledelayedexpansion

REM Определяем пути к исходному и целевому каталогам
set "source_dir=B:\SQLBackup"
set "target_dir=B:\Backup"

REM Получаем текущую дату и время
for /f "tokens=2 delims==" %%I in ('"wmic OS Get localdatetime /value"') do set datetime=%%I
set "date_time=!datetime:~0,4!-!datetime:~4,2!-!datetime:~6,2!_!datetime:~8,2!-!datetime:~10,2!-!datetime:~12,2!"

REM Архивируем каждый файл в каталоге source_dir
for %%f in ("%source_dir%\*") do (
    set "file_name=%%~nf"
    set "file_ext=%%~xf"
    set "archive_name=!file_name!_!date_time!.7z"

    REM Архивируем файл с удалением исходного
    "c:\Program Files\7-Zip\7z.exe" a  -sdel  "!target_dir!\!archive_name!" "%%f"
    if errorlevel 1 (
        echo Ошибка при архивации файла %%f
        exit /b 1
    )
)

echo Все файлы успешно архивированы.
exit /b 0