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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выборка по дате и копирование файлов

Ответить
Настройки темы
CMD/BAT - Выборка по дате и копирование файлов

Новый участник


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

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


Здравствуйте. Очень прошу помочь с написанием bat-файла)
Суть такая. Есть папка, в которой хранятся бэкапы с сервера. В день появляется по 1-2 новых файла.
Необходимо написать bat файл, который копировал бы файлы за 5 последних дней из этой папки в указанную. При этом в идеале, удаляя файлы старше чем 5-ти дневной давности. Заранее спасибо!

Отправлено: 10:37, 10-08-2015

 

Ветеран


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

Профиль | Отправить 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
Благодарности: 35

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


юзать robocopy

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 09:27, 17-08-2015 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выборка по дате и копирование файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) 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




 
Переход