С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/254: Рейтинг темы: голосов - 254, средняя оценка - 4.89
9 / 9 / 0
Регистрация: 06.09.2010
Сообщений: 155
1

Копирование файлов в зависимости от даты

13.09.2012, 14:39. Показов 52590. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Есть Ресурс 1 и Ресурс 2.

Необходимо чтоб все файлы и папки копировались из Ресурс 1 на Ресурс 2, но по дате, не позднее, чем три дня. При этом, чтоб с Русерс 1 эти файлы и папки удалялись.

Например. Сегодня понедельник. Нужно чтоб все файлы и папки в пятницу перенеслись с Ресурс 1 на Ресурс 2, но по дате, только за понедельник, вторник и среда.

Спасибо!
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2012, 14:39
Ответы с готовыми решениями:

Копирование файлов в зависимости от даты по FPT
Добрый день помогите пожалуйста в написании bat должен он уметь: 1. есть папки их 10 с разными...

Копирование файлов не ранее указанной даты
Какие команды использовать в терминале Linux чтобы ввести дату и скопировать файлы, созданные не...

Копирование файлов с указанием даты и времени
Здравствуйте. Стоит задача сделать бекап файлов, имя папки с бекапом должно быть в формате...

Копирование файлов в нужные папки в зависимости от их имён
Подскажите, пожалуйста. Можно ли реализовать такую функцию? Есть файлы вида XXX123456789 (цифры...

7
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
13.09.2012, 15:50 2
Разница между понедельником и пятницей, если не ошибаюсь, составляет 4 дня.
1
9 / 9 / 0
Регистрация: 06.09.2010
Сообщений: 155
17.09.2012, 15:10  [ТС] 3
Не совсем важно сколько дней между ними, это Я для примера. Смысл в том, что есть FTP с ограниченным местом. Каждую пятницу нужно очищать, но свежие файлы нужно оставлять, если думать как Вы, то да, это 4-х дневной давности.
1
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
17.09.2012, 16:32 4
FORFILES [/P <путь>] [/M <маска_поиска>] [/S] [/C <команда>] [/D [+ | -] {dd.MM.yyyy | dd}]

Параметры
/P <путь>
Путь, с которого начинается поиск. По умолчанию используется текущая рабочая папка (.)
/M <маска_поиска>
Поиск файлов с помощью маски. Маска поиска по умолчанию "*"
/S
Рекурсивное выполнение программы forfiles во всех подпапках, аналогично "DIR /S"
/C <команда>
Команда, которая выполняется для каждого файла. Строки команд необходимо заключать в прямые кавычки. Команда по умолчанию "cmd /c echo @file".
Следующие переменные могут использоваться в строке команды:
@file возвращает имя файла
@fname возвращает имя файла без расширения
@ext возвращает только расширение имени файла
@path возвращает полный путь к файлу
@relpath возвращает относительный путь к файлу
@isdir возвращает значение "TRUE", если типом файла является папка, и "FALSE" для файлов
@fsize возвращает размер файла в байтах
@fdate возвращает дату последнего изменения файла
@ftime возвращает время последнего изменения файла

Для включения специальных символов в строку команды следует использовать шестнадцатеричный код символа в формате 0xHH (например, 0x09 для табуляции). Перед внутренними командами CMD.exe необходимо ставить "cmd /c".
/D <дата>
Выбор файлов, у которых дата последнего изменения больше или равна (+) либо меньше или равна (-) указанной дате при использовании формата "dd.MM.yyyy"; либо файлов, у которых дата последнего изменения больше или равна (+) текущей дате плюс "dd" дней либо меньше или равна (-) текущей дате минус "dd" дней. Допустимым числом дней "dd" является любое число в диапазоне 0 - 32768. "+" используется по умолчанию, если знак не указан.
Например,
Bash
1
FORFILES.exe /p "c:\From" /M *.* /C "cmd /c move /y @file c:\To" /d -3
Перемещает все файла из папки c:\From, которые старше 3 дней, в папку c:\To.
2
9 / 9 / 0
Регистрация: 06.09.2010
Сообщений: 155
17.09.2012, 17:18  [ТС] 5
Отлично. спасибо большое. Я не знал, что есть такая с\встроенная утилита. Хотел пробовать через xcopy и т.д. тему можно закрывать.
1
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
17.09.2012, 17:20 6
Она родная, но не во всех окнах есть.
Вот, если что в аттаче: Бэкап папок 1С

Robocopy еще умеет. И тоже не везде есть.
Например:
Bash
1
Robocopy c:\Source c:\Destination *.* /minage:3
c:\Source - источник
c:\Destination - получатель
*.* - маска
/minage - исключает файлы с модификацией ранее указанного кол-ва дней
/maxage - исключает файлы с модификацией позже указанного кол-ва дней
Может также работать с папками. Смотрите справку по ключу /?
1
9 / 9 / 0
Регистрация: 06.09.2010
Сообщений: 155
18.09.2012, 10:32  [ТС] 7
Очень хорошо. Спасибо!

Добавлено через 17 часов 7 минут
Что Я придумал

Bash
1
2
Robocopy c:\1 c:\2 /E  
Robocopy c:\1 c:\2 *.* /minage:3
Первая строка копирует все папки, вторая все файлы.
Атрибут /minage:3 не работает в первой строке. А дальше Мне нужно удалять файлы и папки, которые были скопированы. Чтоб ресурс освобождался.
Там можно командой del воспользоваться, но тогда там тоже нужно выбирать параметр, только те, кто старше 3 дней.
1
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
18.09.2012, 11:25 8
У папки нет такого атрибута, как дата модификации.
И хотя наличиствует дата создания. Получить ее значение батником довольно проблематично, по крайней мере я не знаю как. Можно попробовать в комплекте со сторонними утилитами.

В обход этому можно заходить в каждую такую папку и проверять дату модификации первого попавшегося (или последнего по времени изменения) файла. Это конечно костыли. Но именно так я и реализовал в приведенной мною выше теме.
1
18.09.2012, 11:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2012, 11:25
Помогаю со студенческими работами здесь

Копирование файлов до определенной даты с сохранением структуры
Необходимо из одной папки, в которой находиться около 1.5к папок с папками и файлами, перенести в...

Сортировка файлов из указанной папки по папкам, в зависимости от даты создания
Здравствуйте. Нужно сделать программу, которая сортирует все файлы из указанной папки по папкам, в...

Проверка наличия папки и последующее копирование файлов в зависимости от разрядности системы
Доброго времени! Возникла потребность в написании скрипта для копирования расширения...

Копирование файлов с определенным временем модификации. Поле ввода даты и времени.
Dim A, objFSO, objFile Dim strSource, strDest Dim argFirst, argSecond, MyStamp, TheDate,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru