2015-06-10 6 views
2

после создания нового файла 20 минут. Я хочу скопировать все файлы с расширениями .txt из папки New в папку Target. (Я хочу, чтобы скопировать файлы Olny старше 20 мин)Пакет - xcopy файлы старше x минут

До сих пор, это выглядит следующим образом:

set hh=%TIME:~0,2% 
set mm=%TIME:~3,2% 
set ss=%TIME:~6,2% 

set /a sum_sec=%hh% * 3600 + %mm% * 60 + %ss% -300 

set /a h=%sum_sec%/3600 
set /a m=(%sum_sec%/60) - 60 * %h% 
set /a s=%sum_sec% - 60 * (%sum_sec%/60) 
IF %h% LSS 10 set h=0%h% 
IF %m% LSS 10 set m=0%m% 
IF %s% LSS 10 set s=0%s% 

set new_time=%h%:%m%:%s% 

До сих пор я только удалить файлы, которые старше, чем за 20 минут:

forfiles /P "C:\Users\Desktop\Start" /S /M *.txt /C "cmd /c if @ftime LSS %new_time% del /F /Q @path" 

Мой вопрос: как я могу копировать новые файлы из папки New в папку Target через 20 минут?

Лучшие регс

+0

устаревшие в смысле создания или модификации? – npocmaka

+0

Привет. Старее по смыслу творения. – BASF

ответ

2

Проверьте FileTimeFilter.bat - она ​​способна фильтровать файлы по различным временем conditions.So (он должен находиться в том же каталоге):

@echo off 
for /f "tokens=* delims=" %%# in (' 
    call FileTimeFiler.bat "New" -mm -20 -direction before -filetime created 
') do (
    copy "%%~f#" "Target" 
) 

EDIT. Фильтры txt-файлов

@echo off 
for /f "tokens=* delims=" %%# in (' 
    call FileTimeFiler.bat "New" -mm -20 -direction before -filetime created ^| findstr /e /i ".txt" 
') do (
    copy "%%~f#" "Target" 
) 
+0

Хороший пакетный файл, thx для обмена! – BASF

+0

Привет. Можно ли искать и копировать только файлы с расширением .txt? Я пытаюсь «C: \ Users \ Desktop \ New \ *. Txt» -mm -20 -direction before -filetime created' Но он не работает и получает Runtime Error. – BASF

+0

@BASF - проверьте мое редактирование. – npocmaka

Смежные вопросы