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

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

maxim43g 02-02-2024 09:20 3023565

Орагнизация бэкапа с помощью бат
 
Добрый день.
необходимо ежедневно копировать файл из каталога 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 3023576

Код:

@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 3024093

Всё получилось, большое вам спасибо!

maxim43g 16-05-2024 21:00 3027332

megaloman, Добрый день.
Скрипт работает, но копится более 7 файлов, т.е. он старые не удаляет

megaloman 17-05-2024 20:01 3027361

maxim43g, Приведите пример имени старого файла, который не удалил мой скрипт. Обращаю Ваше внимание, что скрипт рассматривает файлы, соответствующие маске
file-20??????.doc
Если имя файла не подпадает под эту маску, то скрипт его не видит. Например:
kuku-20242004.Doc
file1-20242004.Doc


Время: 12:30.

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