|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как сделать выборку по последней дате файлов??? |
|
CMD/BAT - [решено] Как сделать выборку по последней дате файлов???
|
Новый участник Сообщения: 21 |
Профиль | Отправить PM | Цитировать В определённой папке (назовём её "archive") каждых пол часа создаются архивы БД, в среднем 25 файлов в день... За неделю - месяц их там собирается целая куча...
Какую команду написать в bat-нике, чтобы он копировал файлы только последней даты? (bat-ник запускается по надобности, а не регулярно...). Заранее спасибо... |
|
Отправлено: 17:35, 04-08-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать В перемнной Dst указываете путь, куда копировать файлы, скрипт в папку с копируемыми файлами лучше не класть, но запускать именно из копируемой папки.
@echo off SetLocal EnableExtensions set Dst=C:\TEMP\ set D=. for /f "tokens=* delims=" %%F in ('dir /a-d /b /o-d') do call :Check "%%F" goto End :Check set Cur=%~t1 set Cur=%Cur:~0,10% if %D%==. set D=%Cur% if not %D%==%Cur% (Echo Done & exit) set stat=Done copy %1 %Dst% 2>nul 1>nul if errorlevel 1 set stat=Failed echo %Stat%: %D% %~1 >>%~dpn0.log exit /b :End |
------- Отправлено: 18:07, 04-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Спасибо, попробую...
|
Отправлено: 18:09, 04-08-2010 | #3 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal enabledelayedexpansion Rem Здесь указана исходная папка Set fl=c:\archive Rem Здесь указана папка приемник Set Out=c:\lastday Set lday=00000000 For %%i In ("%fl%\*") Do ( Set fdat=%%~ti Set fdat=!fdat:~6,4!!fdat:~3,2!!fdat:~0,2! If !fdat! GTR !lday! Set lday=!fdat! ) For %%i In ("%fl%\*") Do ( Set fdat=%%~ti Set fdat=!fdat:~6,4!!fdat:~3,2!!fdat:~0,2! If !fdat!==!lday! Copy /Y "%%i" "%Out%\%%~nxi" ) Exit |
Отправлено: 18:27, 04-08-2010 | #4 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать А что означает переменная D ???
Цитата gora:
Пробую... |
||
Отправлено: 18:58, 04-08-2010 | #5 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать gora, Спасибо помогло...
А можно ещё сделать дополнение, чтобы сразу удалялись файли, не за текущий месяц??? |
Отправлено: 10:15, 05-08-2010 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Pshek:
@Echo Off SetLocal enabledelayedexpansion Rem Здесь указана исходная папка Set fl=c:\archive Rem Здесь указана папка приемник Set Out=c:\lastday Set tMonth=%Date:~6,4%%Date:~3,2% Set lday=00000000 For %%i In ("%fl%\*") Do ( Set fdat=%%~ti Set fMonth=!fdat:~6,4!!fdat:~3,2! Set fdat=!fdat:~6,4!!fdat:~3,2!!fdat:~0,2! If Not %tMonth%==!fMonth! Del /F/Q "%%i" If !fdat! GTR !lday! Set lday=!fdat! ) For %%i In ("%fl%\*") Do ( Set fdat=%%~ti Set fdat=!fdat:~6,4!!fdat:~3,2!!fdat:~0,2! If !fdat!==!lday! Copy /Y "%%i" "%Out%\%%~nxi" ) Exit |
|
Отправлено: 10:44, 05-08-2010 | #7 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать gora, Спасибо огромное
|
Отправлено: 11:06, 05-08-2010 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) | DIMM2005 | Программное обеспечение Windows | 36 | 03-01-2020 16:54 | |
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. | rancid | Скриптовые языки администрирования Windows | 3 | 23-07-2009 06:38 | |
Прочие БД - SQL запрос на выборку по дате | echo off | Программирование и базы данных | 1 | 10-06-2009 01:15 | |
как сделать возможным заливку файлов на сайт | Demonq | Вебмастеру | 1 | 11-03-2009 21:26 | |
как узнать дату последней записи на cd-r? | Oleg87 | Хочу все знать | 3 | 22-08-2006 13:59 |
|