Скрипт копирования файла со сжатием
Posted On 2021-06-24
@echo on
@chcp 65001
CLS
cd C:\backup
set PATH=%PATH%;%ProgramFiles%\PostgreSQL 1C\12\bin;%ProgramFiles%\7-Zip
rem echo %PATH%
rem взять время заменить точки на подчеркивание. Нужно, чтобы вместо 0 не было пробела во времени
for /f "delims=:, tokens=1,2,3" %%i in ("%time%") do (set t=%%i_%%j_%%k)
set t=%t: =0%
set datestr=%date:~-4,4%_%date:~-7,2%_%date:~-10,2%_%t%
rem echo datestr is %datestr%
set NUM_COPY=7
set BASENAME=C:\ROZN\1Cv8.1CD
set bkp_dir=D:\bak\ROZN
set BACKUP_FILE=ROZN_%datestr%.1cdbak
IF NOT EXIST %bkp_dir% MD %bkp_dir%
echo F | xcopy /Y /I %BASENAME% %bkp_dir%\%BACKUP_FILE%
cd %bkp_dir%
7z a -mx3 -sdel -tzip %bkp_dir%\%BACKUP_FILE%.zip %bkp_dir%\%BACKUP_FILE%
rem del %BACKUP_FILE%
powershell -executionpolicy bypass -command "Get-ChildItem -Path %bkp_dir% -file | Sort-Object creationtime -Descending | Select-Object -skip %NUM_COPY% | ForEach-Object {Remove-Item $_.FullName}"