Цитата 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