|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт копирования файла по названию из даты |
|
CMD/BAT - [решено] Скрипт копирования файла по названию из даты
|
Новый участник Сообщения: 22 |
Профиль | Отправить PM | Цитировать В определенной папке раз в сутки создается файл с именем, например, 10.09.2020.doc . То есть, каждый день создается файл с датой этого дня.
Как написать скрипт, чтобы копировать файл за прошлые сутки? То есть, 11.09.2020 этот скрипт будет запускаться и должен скопировать в другое место файл 10.09.2020.doc |
|
Отправлено: 17:34, 26-11-2020 |
Ветеран Сообщения: 2703
|
Профиль | Отправить PM | Цитировать @Echo Off Set "BoxIn=Z:\Box_In" Set "BoxOut=Z:\Box_Arc" Set /A DeltaDay=-1 FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "ToDay=%%d" &Call Set "ToDay=%%ToDay:~6,2%%.%%ToDay:~4,2%%.%%ToDay:~0,4%%" Call :FromDate %DeltaDay% %ToDay% "DDat" Echo Copy "%BoxIn%\%DDat:~6,2%.%DDat:~4,2%.%DDat:~0,4%.doc" "%BoxOut%\" Copy "%BoxIn%\%DDat:~6,2%.%DDat:~4,2%.%DDat:~0,4%.doc" "%BoxOut%\" Exit /B :FromDate rem Пересчет даты на заданное кол-во дней rem В первом аргументе +- дни rem Во втором аргументе дата в формате dd.mm.yyyy rem В третем аргументе имя переменной в кавычках где получим новую дату в формате yyyymmdd rem Заимствовано http://forum.oszone.net/thread-186889.html rem вызов Call :FromNow %DeltaDay% %Date% "yyyymmdd" rem результат в перемменной %yyyymmdd% SetLocal Set "DT=%~2" Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100 Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4 Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001 Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11 Set /A J=J+2-12*L,I=100*(N-49)+I+L Set /A yyyy=I,mm=100+J,dd=100+K EndLocal& Set "%~3=%yyyy%%mm:~-2%%dd:~-2%" GoTo :Eof |
------- Отправлено: 18:04, 26-11-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
(*.*) Сообщения: 36473
|
Профиль | Сайт | Отправить PM | Цитировать С датами намного проще работать в PowerShell. Решается фактически в одну строку, переменные для наглядности
$source = "C:\source" $target = "C:\target" $format = "{0:dd.MM.yyyy}" #10.09.2020 $filename = -join("$($format -f (Get-Date).AddDays(-1))", ".doc") Copy-Item -Path $source\$filename -Destination $target Даты создания отчета и установки системы Как массово задать дату изменения или создания файлов в PowerShell |
------- Отправлено: 21:39, 26-11-2020 | #3 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Спасибо, все работает!!!
|
Отправлено: 16:08, 27-11-2020 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Сделать задержку, размер которой определить по названию файла | Alexander_88 | Скриптовые языки администрирования Windows | 7 | 08-07-2018 19:11 | |
CMD/BAT - [решено] Не работает скрипт копирования самого свежего файла по текущей дате | dark-------13 | Скриптовые языки администрирования Windows | 6 | 18-02-2016 08:42 | |
CMD/BAT - [решено] переименование директории по названию файла в ней | shmel_sv@vk | Скриптовые языки администрирования Windows | 4 | 23-03-2015 21:25 | |
CMD/BAT - [решено] Копирование файла по его начальному названию (Маске) | idlazarev_alex@vk | Скриптовые языки администрирования Windows | 3 | 16-08-2014 22:35 | |
CMD/BAT - Скрипт копирования файла с парка компьтеров. | exo | Скриптовые языки администрирования Windows | 4 | 14-09-2009 15:24 |
|