Копирование файлов в определенный промежуток времени.
Доброго времени суток! что-то ничего не нашел и решил спросить.
требуется копировать файлы которые появились в промежуток времени например с 12-00 до 16-00.
сейчас я просто копирую за текущую дату:
Код:
xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "D:\share\*" "\\192.168.1.1\Test"
Помогите, пожалуйста, реализовать сей алгоритм =)
|
Цитата:
Цитата sec1or
реализовать сей алгоритм »
|
запускаете сей код с помощью задачи в планировщике, где и указываете в параметрах нужный временной отрезок.
|
Этот код скопирует все файлы за текущую дату. Не важно когда его запускать.
|
да, чего-то не так условие понял
Код:
@echo off
set "d1=C:\papka1"
set "d2=C:\papka2"
set /a t1=12,t2=16
if not exist "%d2%" md "%d2%"
pushd "%d1%"
for /f "tokens=1-3*" %%a in ('dir /a-d/tc "*.*"^|findstr/rc:"^[^ ]"') do set "ti=%%b"& call :dt "%%d" "%%a" "%%ti:~0,2%%"
popd
pause& exit
:dt
if %~2==%date% if %~3 geq %t1% if %~3 leq %t2% >nul copy "%~1" "%d2%\%~1"
exit /b
|
До кучи
Код:
@Echo Off
cls
Set "BoxIn=D:\share"
Set "Mask=*.*"
Set "BoxOut=\\192.168.1.1\Test"
Set "T1=9:30"
Set "T2=17:45"
Set "Delim=:"
Call :MyTime %T1% %Delim% "TT1"
Call :MyTime %T2% %Delim% "TT2"
Pushd "%BoxIn%"
FOR /F "usebackq delims=" %%i IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D`) DO Call :CopyTime "%%i" "%BoxOut%" %TT1% %TT2% %Delim% %%~ti
Popd
pause
Exit /B 0
:MyTime
SetLocal
Set "T=%~1"
Call Set "T=00%%T:%Delim%=%%"
EndLocal &Set /A %~3=1%T:~-4%
Exit /B %ErrorLevel%
:CopyTime
If Not "%Date%"=="%6" Exit /B 0
Call :MyTime %7 %5 "T"
If %T% LSS %3 Exit /B 0
If %T% GTR %4 Exit /B 0
>nul Xcopy /Y /D %1 "%~2\"
Exit /B %ErrorLevel%
Выделенная строка ограничивает копирование только сегодняшним днём. Если надо за все дни, эту строку удалить. Применил XCopy /D, чтобы исключить повторное копирование
|
Уважаемые форумчане, помогите, пожалуйста, добавить в этот скрипт еще копирование папок с содержимым =)
Заранее спасибо !
|
Цитата:
Цитата sec1or
копирование папок с содержимым »
|
т.е. надо папку копировать в папку?
Код:
xcopy /i "%userprofile%\Documents" "D:\Documents"
|
Да, но только по времени. файлы или папки. как в скриптах которые вы писали выше. там файлы копируются, а надо еще папки добавить.
|
Файлы и папки, пути пропишИте свои
Код:
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Mask=*.*"
Set "BoxOut=\\192.168.100.23\Test1"
Set "T1=9:30"
Set "T2=17:45"
Set "Delim=:"
Call :MyTime %T1% %Delim% "TT1"
Call :MyTime %T2% %Delim% "TT2"
Pushd "%BoxIn%"
FOR /F "usebackq delims=" %%i IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D`) DO Call :CopyTime "%%i" "%BoxOut%" %TT1% %TT2% %Delim% %%~ti 0
FOR /F "usebackq delims=" %%i IN (`2^>nul Dir "%BoxIn%\*.*" /B /A:D`) DO Call :CopyTime "%%i" "%BoxOut%" %TT1% %TT2% %Delim% %%~ti 1
Popd
pause
Exit /B 0
:MyTime
SetLocal
Set "T=%~1"
Call Set "T=00%%T:%Delim%=%%"
EndLocal &Set /A %~3=1%T:~-4%
Exit /B %ErrorLevel%
:CopyTime
If Not "%Date%"=="%6" Exit /B 0
Call :MyTime %7 %5 "T"
If %T% LSS %3 Exit /B 0
If %T% GTR %4 Exit /B 0
If "%~8"=="0" >nul Xcopy /Y /D %1 "%~2\"
If "%~8"=="1" >nul Xcopy /Y /E /D %1 "%~2\%~nx1\"
Exit /B %ErrorLevel%
|
Спасибо огромное! в очередной раз выручили )
|
Время: 02:28.
© OSzone.net 2001-