Копирование файлов, созданных пять минут назад
Как организовать копирование файлов из определенной папки с учетом того, что они были созданы 5 минут назад или раньше? Возможно такое организовать через cmd или powershell?
|
Цитата:
Цитата Stolc
они были созданы 5 минут назад или раньше? »
|
«…или раньше» — это как? 6, 7, 8 и т.д. минут назад или же 4, 3, 2, 1, 0 минут назад?
|
6, 7, 8 и т.д. минут назад
|
Stolc, если копировать файлы, то вот вариант. Хотя подозреваю, надо перемещать
Код:
@Echo Off
Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"
Set "Mask=*.*"
Set /A DMin=5
Call :Minutes "%Date% %Time%" "DayNow" "MinNow"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D`) DO Call :CopyMin "%BoxIn%\%%f"
GoTo :Eof
:CopyMin
Call :Minutes "%~t1" "DayOld" "MinOld"
Set /A DOld=(%DayNow%-%DayOld%)*1440+%MinNow%-%MinOld%
If %DOld% GEQ %DMin% >nul xcopy /D %1 "%BoxOut%\"
GoTo :Eof
:Minutes
SETLOCAL
FOR /F "tokens=1,2,3,4,5 delims=.:,/ " %%i IN ("%~1") DO Set "Day=0%%i" &Set "Month=0%%j" &Set "Year=%%k" &Set "Hour=0%%l" &Set "Min=0%%m"
Set /A Day=1%Day:~-2%-100
Set /A Month=1%Month:~-2%-100
Call :JulianDay %Day% %Month% %Year% "Day"
ENDLOCAL &(Set /A %~2=%Day% &Set /A %~3=1%Hour:~-2%*60+1%Min:~-2%-6100)
GoTo :Eof
rem Вычисляет абсолютный номер дня по юлианскому календарю
rem На входе dd mm yyyy
rem На выходе имя переменной в кавычках четвёртым аргументом
:JulianDay
Set /A %~4=(1461*(%3+4800+(%2-14)/12))/4+(367*(%2-2-12*((%2-14)/12)))/12-(3*((%3+4900+(%2-14)/12)/100))/4+%1-32075
Exit /B
|
Код:
@echo off
set "d1=C:\papka"
set "d2=C:\out"
set mt=%time%
set dt=-5
if not exist "%d2%" md "%d2%"
for /f "tokens=1-2 delims=:" %%a in ("%mt: =0%") do set/a "t=(1%%a-100)*60+(1%%b-100)+(dt %% 1440)","t+=(t>>31)&1440","hh=(t/60 %% 24)+100","mm=(t %% 60)+100"
for /f "tokens=2-4* delims=: " %%a in ('dir /a-d/od/tc "%d1%\*.txt"^|findstr /rc:"^[^ ]"') do if %%a%%b leq %hh:~-2%%mm:~-2% >nul copy "%d1%\%%d" "%d2%"
pause
|
оперируют днями и датами... если не ошибаюсь
Код:
$src,$dst='d:\определенная папка','d:\ещё одна определённая папка'
copy (dir $src -file|?{$_.creationtime -lt (get-date).addminutes(-5)}).fullname $dst
|
Время: 19:15.
© OSzone.net 2001-