PDA

Показать полную графическую версию : [решено] bat бэкап


MisterCron
23-02-2021, 22:41
Добрый день! На данный момент имею вот такой bat скрипт, который запускается несколько раз в сутки и создает бэкап папки "worlds" с названием в формате даты (23.02.2021), если бэкап за данные сутки создан - он не делается. Задача: если бэкап создан - создать бэкап и к текущей дате в конце добавить 1 (23.02.2021 1) и к последующим бэкапам добавлять единицу (23.02.2021 2). Большое спасибо за помощь.


set _my_datetime=%date%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=.%
set _my_datetime=%_my_datetime:,=.%


::Вывод на экран и удаление бэкапов старше 3 дней
forfiles /p "backup" /M * /D -3 /C "cmd /c echo @RELPATH - deleted"
forfiles /p "backup" /M * /D -3 /C "cmd /c rd /s /q @path"


::Не создавать бэкап, если он уже существует
if not exist "backup\%_my_datetime%" (
xcopy "worlds" "backup\%_my_datetime%\" /H /Y /C /R /S
) else (
echo #**The backup has already been created today**#
)

MisterCron
23-02-2021, 23:25
Нашел решение!

set _my_datetime=%date%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=.%
set _my_datetime=%_my_datetime:,=.%


::Вывод на экран и удаление бэкапов старше 3 дней
forfiles /p "backup" /M * /D -3 /C "cmd /c echo @RELPATH - deleted"
forfiles /p "backup" /M * /D -3 /C "cmd /c rd /s /q @path"

SetLocal enabledelayedexpansion enableextensions
set /A count+=1
xcopy "worlds" "backup\%_my_datetime% !count!\" /H /Y /C /R /S

Iska
24-02-2021, 00:04
Нашел решение! »
MisterCron, а для:
к последующим бэкапам добавлять единицу (23.02.2021 2) »
будете писать:
set /A count+=2 »
?!




© OSzone.net 2001-2012