|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выборка по дате и копирование файлов |
|
CMD/BAT - Выборка по дате и копирование файлов
|
Новый участник Сообщения: 1 |
Профиль | Отправить PM | Цитировать Здравствуйте. Очень прошу помочь с написанием bat-файла)
Суть такая. Есть папка, в которой хранятся бэкапы с сервера. В день появляется по 1-2 новых файла. Необходимо написать bat файл, который копировал бы файлы за 5 последних дней из этой папки в указанную. При этом в идеале, удаляя файлы старше чем 5-ти дневной давности. Заранее спасибо! |
|
Отправлено: 10:37, 10-08-2015 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать TiroEL, Как-то делал похожее, поменяете на 5 дней в строке 15, удаление надо доработать и скачать утилиту nircmd и кинуть в system32
@echo off setlocal enabledelayedexpansion set "qw=%Userprofile%\Desktop\Test" rem Для изменения у всех файлов даты "модификации" "обращения" [на текущую] "nircmd" setfiletime "%qw%\*" "" now now rem Убираем лидирующий "0" из даты, если есть for /f "tokens=* delims=0" %%d in ("%date%") do ( set onosdate=%%d rem Модифицируем дату к виду: "текущая дата-3(дня)" for /f "tokens=1-3 delims=.: " %%a in ("!onosdate!") do ( rem У кого английская поменять на %%c%%b%%a set sdate=%%a%%b%%c rem У кого английская %%c%%b set dnoa=%%b%%c set range=3 set /a newa=%%a-!range! rem У кого английская !dnoa!!newa! set newsdate=!newa!!dnoa!)) rem Выделяем "дату создания" "имя" и "расширение" файлов (очень важна сортировка по дате и времени, порядок не важен) for /f "tokens=1-8 delims=.: " %%i in ('dir/a-d/o-d/tc "%qw%"^| findstr/rc:"^[^ ]"') do ( rem У кого английская %%k%%j%%i set mydate=%%i%%j%%k rem Убираем лидирующий "0" из даты, если есть for /f "tokens=* delims=0" %%q in ("!mydate!") do ( set onomydate=%%q set "namemydate=%%o.%%p%%q" rem Сравниваем "имя" "расширение" "заданная дата" = "имя" "расширение" "дата создания" файла if "%%o.%%p%newsdate%"=="!namemydate!" ( rem Дальше вольны делать с файлами, что захотим, например: copy "%qw%\%%o.%%p" "%Userprofile%\Desktop\Folder\"))) exit |
Отправлено: 20:35, 16-08-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 543
|
Профиль | Сайт | Отправить PM | Цитировать юзать robocopy
|
------- Отправлено: 09:27, 17-08-2015 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) | DIMM2005 | Программное обеспечение Windows | 36 | 03-01-2020 16:54 | |
CMD/BAT - Сортирование файлов по папкам (копирование в многоуровневые папки по дате создания) | Systems | Скриптовые языки администрирования Windows | 18 | 03-10-2014 11:37 | |
CMD/BAT - [решено] Копирование файлов по дате создания | Syna | Скриптовые языки администрирования Windows | 27 | 23-05-2013 14:02 | |
MSFT SQL Server - Выборка по дате | Pulvertum | Программирование и базы данных | 7 | 03-11-2009 00:58 | |
Delphi - Delphi 7 + БД MS Access: выборка по дате | lunny | Программирование и базы данных | 1 | 02-06-2007 11:46 |
|