Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] bat бэкап (http://forum.oszone.net/showthread.php?t=348078)

MisterCron 23-02-2021 22:41 2951071

bat бэкап
 
Добрый день! На данный момент имею вот такой 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 2951077

Нашел решение!

Код:

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 2951078

Цитата:

Цитата MisterCron
Нашел решение! »

MisterCron, а для:
Цитата:

Цитата MisterCron
к последующим бэкапам добавлять единицу (23.02.2021 2) »

будете писать:
Цитата:

Цитата MisterCron
Код:

set /A count+=2
»

?!


Время: 16:16.

Время: 16:16.
© OSzone.net 2001-