|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование файлов по дате создания |
|
|
CMD/BAT - [решено] Копирование файлов по дате создания
|
Новый участник Сообщения: 16 |
Профиль | Отправить PM | Цитировать Здравствуйте, помогите пожалуйста с батником. Нужно следующие:
Батником про сканировать директорию и скопировать по маске файлы (*.xml и *.txt) и дате создания, именно по созданию не по изменению файла. Все что я сделал, это про сканировал директорию и вывел дату создания, а как ее привязать к файлам не знаю. Вот скрипт: @echo off SetLocal EnableExtensions setlocal enableDelayedExpansion FOR /r "D:\Din" %%f IN (*.*) do ( set nm=%%f @for /f %%i in ('dir "!nm!" /O:D /A:-D /tc ^| findstr "^[0-9]*\."') do set g=%%i echo %%f [!g!] ) Заранее, спасибо. |
|
Отправлено: 11:59, 10-12-2012 |
Ветеран Сообщения: 2183
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:54, 10-12-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:15, 10-12-2012 | #3 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Спасибо, "gora", то что нужно, если не трудно, можешь еще в этот скрипт дописать следующие:
нужно копировать эти файлы только, если они меньше даты создания файла. Например: файл создан 12.12.2012 его копировать не надо, если файл создан 06.12.2012 его надо уже копировать, т.е. интервал -5 дней. Еще раз, огромное спасибо. |
Отправлено: 07:55, 11-12-2012 | #4 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion Set folder=e:\Temp Set old=5 For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set tim=%%i Set YYYY=%tim:~0,4%&Set MM=%tim:~4,2%&Set DD=%tim:~6,2% ::Call :formatMM_DD Echo Now %DD% %MM% %YYYY% Call :GetOldDate %old% Echo Old %DD% %MM% %YYYY% For /F "delims=" %%a In ('dir /A:-D /T:C /O:D "%folder%" ^| Findstr /E /c:".txt" /c:".xml"') Do ( Set ta=%%a Set name=!ta:~36!& Set dat=!ta:~6,4!!ta:~3,2!!ta:~0,2! If %YYYY%%MM%%DD% GTR !dat! (Echo Copy !dat! %folder%\!name!) Else Echo Not copy !dat! %folder%\!name! ) Pause Exit :GetOldDate Set /A DD-=%1 If %DD% GTR 0 GoTo formatMM_DD Set /A MM=MM+11-((MM+10)/12)*12 If %MM%==12 Set /A YYYY-=1 For /F "Tokens=%MM%" %%i In ("31 28 31 30 31 30 31 31 30 31 30 31") Do Set X=%%i If %MM%==2 ( Set /A B1=YYYY%%4, B2=YYYY%%100, B3=YYYY%%400 If !B1!==0 If Not !B2!==0 Set /A X+=1 If !B3!==0 Set /A X+=1 ) Set /A DD=DD+X-((DD+X-1)/X)*X :formatMM_DD Set MM=0%MM%&Set DD=0%DD% Set MM=%MM:~-2%&Set DD=%DD:~-2% GoTo :EOF |
|
Отправлено: 10:57, 11-12-2012 | #5 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Спасибо, огромное, gora. Выручил. Респект тебе.
|
Отправлено: 12:40, 11-12-2012 | #6 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Сегодня только толком просмотрел батник, прошу прощения за тупой вопрос. Скажи, пожалуйста, какую переменную брать для копирования старых файлов? Спасибо.
|
Отправлено: 07:12, 12-12-2012 | #7 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:17, 12-12-2012 | #8 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать .
Цитата gora:
Now 12 12 2012 Old 07 12 2012 Непредвиденное появление: /12)*12 If %YYYY%%MM%%DD% GTR !dat! (Copy "%folder%\!name!" "%folder1%") |
|
Отправлено: 09:22, 12-12-2012 | #9 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Syna:
2 Попробуйте еще раз скопировать скрипт из поста 5 и не меняйте в нем ни чего кроме строки в которой укажите путь к Вашей папке. 3 Приведите здесь путь к этой папке. 4 Покажите вывод скрипта здесь в тегах code 5 Если скрипт продолжает выдавать ошибку, то повторите пп 2-4 для скрипта из поста 3. 6 Приведите значение переменной "%folder1%" 7 Проверьте Ваши пути и имена обрабатываемых файлов на отсутствие спец. символов в них. |
|
Отправлено: 11:09, 12-12-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) | DIMM2005 | Программное обеспечение Windows | 36 | 03-01-2020 16:54 | |
CMD/BAT - Изменить функцию сортировки файлов - сортировка дб по дате создания а не изменения | dark-------13 | Скриптовые языки администрирования Windows | 2 | 04-07-2012 17:55 | |
CMD/BAT - Переименование группы файлов по дате создания | Serg2010 | Скриптовые языки администрирования Windows | 8 | 14-04-2012 00:40 | |
Переименование группы файлов по дате создания | Serg2010 | AutoIt | 1 | 10-04-2012 10:25 | |
CMD/BAT - [решено] Копирование самого позднего по дате создания каталога. | SANIOK_AV | Скриптовые языки администрирования Windows | 2 | 04-12-2009 17:29 |
|