Показать полную графическую версию : Орагнизация бэкапа с помощью бат
maxim43g
02-02-2024, 09:20
Добрый день.
необходимо ежедневно копировать файл из каталога C:\1\file.doc C:\2\file.doc , переименовать его с текущей датой, копить не более 7 таких копий и удалять.
Делаю так
xcopy C:\1\file.doc C:\2\file.doc
ren file.doc file.doc-%date:.=%
но как сделать что бы он еще удалял старые версии бэкапов, т.е. если число больше 7 то del
megaloman
02-02-2024, 11:23
@Echo Off &Cls
Set "FileIn=Z:\Box_In\1\file.doc"
Set "BoxOut=Z:\Box_Out\2"
Set "Mask=file-20??????.doc"
Set /A N=7
FOR /F "tokens=2 delims==." %%d In ('WMIC OS GET LOCALDATETIME /VALUE') DO Set "d=%%d"
Set /A d=%d:~0,8%
For %%f In ("%FileIn%") Do >nul Copy %%f "%BoxOut%\%%~nf-%d%%%~xf"
For /F "usebackq skip=%N% delims=" %%f In (`2^>nul Dir "%BoxOut%\%Mask%" /B /A:-D /O:-D /T:W`) Do Del "%BoxOut%\%%f"
Pause
Exit /B
maxim43g
13-02-2024, 10:23
Всё получилось, большое вам спасибо!
maxim43g
16-05-2024, 21:00
megaloman, Добрый день.
Скрипт работает, но копится более 7 файлов, т.е. он старые не удаляет
megaloman
17-05-2024, 20:01
maxim43g, Приведите пример имени старого файла, который не удалил мой скрипт. Обращаю Ваше внимание, что скрипт рассматривает файлы, соответствующие маске
file-20??????.doc
Если имя файла не подпадает под эту маску, то скрипт его не видит. Например:
kuku-20242004.Doc
file1-20242004.Doc
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.