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

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

Ветеран


Contributor


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

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


v79italya,
Код: Выделить весь код
@Echo Off
>nul Chcp 1251
	Set "FileIn=Z:\Soft_In\делать каждые 8 часов копию файла.xlsx" 
	Set /A Narc=90

	Set "BoxOut=Z:\Soft_Arc"
rem	Set "BoxOut=\\ServerName\Test2"
rem	Set "BoxOut=\\192.168.100.23\Test1"

	If Not Exist "%FileIn%" (Echo File "%FileIn%" not found &Pause &Exit /B 2)
	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" &Call Set "@Tdate=%%@TDate:~0,12%%"
	For %%f In ("%FileIn%")	Do Set "Ext=%%~xf" &>nul Copy %%f "%BoxOut%\%@Tdate% %%~nxf" 

	FOR /F "usebackq Skip=%Narc% delims=" %%f IN (`2^>nul Dir "%BoxOut%\20?????????? *%Ext%" /A:-D /B /O:-N`) DO Del "%BoxOut%\%%f"
Exit /B
При наличии кириллицы в путях сохранить скрипт в кодировке 1251
Укажите свой путь к исходному файлу. Он может быть сетевым.
Укажите свою папку, куда складываете копии. Она тоже может быть сетевой. Для примера оставил закомментированные строки.
Я не хочу в CMD возиться с датами - возможно, но громоздко.
Поэтому, если Вы делаеие копии каждые 8 час=3 копии в сутки = 90 копии в месяц, то я предлагаю сохранять последние 90 копии. Вы можете указать иное число.
Естественно, Вы будете осчастливлены, если этот скрипт будет выполняться планировщиком.

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


Последний раз редактировалось megaloman, 13-10-2022 в 15:37.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 13-10-2022 | #6