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

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

Ответить
Настройки темы
CMD/BAT - Копирование файлов, созданных пять минут назад

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


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

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


Как организовать копирование файлов из определенной папки с учетом того, что они были созданы 5 минут назад или раньше? Возможно такое организовать через cmd или powershell?

Отправлено: 10:26, 06-08-2018

 

Ветеран


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

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


Цитата Stolc:
они были созданы 5 минут назад или раньше? »
«…или раньше» — это как? 6, 7, 8 и т.д. минут назад или же 4, 3, 2, 1, 0 минут назад?

Отправлено: 12:34, 06-08-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


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


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

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


6, 7, 8 и т.д. минут назад

Отправлено: 13:25, 06-08-2018 | #3


Ветеран


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

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


forfiles, robocopy

Отправлено: 13:33, 06-08-2018 | #4


Ветеран


Contributor


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

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


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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:44, 06-08-2018 | #5


Ветеран


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

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


Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:39, 06-08-2018 | #6


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Busla:
forfiles, robocopy »
оперируют днями и датами... если не ошибаюсь

Цитата Stolc:
или powershell »
Код: Выделить весь код
$src,$dst='d:\определенная папка','d:\ещё одна определённая папка'
copy (dir $src -file|?{$_.creationtime -lt (get-date).addminutes(-5)}).fullname $dst

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:41, 07-08-2018 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование всех файлов и подкаталогов, созданных на предыдущем месяце kyzlek Скриптовые языки администрирования Windows 3 18-08-2017 11:45
Разное - Чезез пять минут уходит в сон zai Microsoft Windows 10 2 24-07-2017 10:02
CMD/BAT - [решено] Копирование новых файлов каждые 30 минут. POSTREALITY Скриптовые языки администрирования Windows 20 23-11-2016 13:39
CMD/BAT - [решено] Если файл изменен более N минут назад konst_vrn@vk Скриптовые языки администрирования Windows 8 25-02-2014 23:35
Пять лет назад Dell продала Microsoft 300 неисправных компьютеров OSZone News Новости и события Microsoft 0 20-11-2010 16:30




 
Переход