Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2715
Благодарности: 1688

Профиль | Отправить PM | Цитировать


Цитата Super_Kolobok:
Есть папка 1 с папками бекапов А, Б, С, »
Цитата Super_Kolobok:
Сейчас там остается 3 папки, каждый новый бекап затирает самую старую »
Цитата Super_Kolobok:
при появлении новой папки паковать ее в отдельный архив с удалением папки »
Не надо удалять папку, это делает средство создания бэкапа. В противном случае, при возможном сбое Вы будете архивировать оставшиеся более старые папки, а актуальный бэкап будет утерян.
Вот вариант:
- если в папке 2 уже есть архив последней папки (имя "дата время.7Z"), то ничего не делаем
- в противном случае делаем архив самой свежей папки с именем "дата время.7Z"
-в случае благополучного завершения архивации очищаем 2 папку от архивов и переносим туда новый архив.
Код: Выделить весь код
@Echo Off &Cls &>nul Chcp 1251
	Set "BoxIn=Z:\Box_In"
	Set "BoxOut=\\192.168.100.23\Test2"
	Set Arc="C:\Program Files\7-Zip\7z.exe" a -r  

	Pushd "%BoxIn%" || (Echo Folder "%BoxIn%\" not found &Pause &Exit /B 2)
		For /F "usebackq delims=" %%i In (`2^>nul Dir /B /A:D /T:W /O:D`) Do (Set "DirName=%%i" &Set "DirDate=%%~ti")
		Set "DirDate=%DirDate::=.%"
		Set "DirDate=%DirDate:/=.%"
		Set "DirDate=%DirDate:\=.%"
		If Exist "%BoxOut%\%DirDate%.7Z" Exit /B 1
		%Arc% "%DirDate%.7Z" "%DirName%" &&(Del "%BoxOut%\*7Z" &Move "%DirDate%.7Z" "%BoxOut%\")
	Popd
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 09:16, 08-04-2024 | #8