Board logo

标题: 复制时间段内的文件 [打印本页]

作者: iamstar     时间: 2009-10-10 12:05    标题: 复制时间段内的文件


@echo off &setlocal enabledelayedexpansion

set time1=
set /p time1=起始时间(20090721)
set time2=
set /p time2=结束时间(20090723)

md "C:\Documents and Settings\Administrator\桌面\p\%time2%"

for /r \\192.168.1.3\p\123 %%a in (*.*) do (
set var=%%~ta
set var=!var:~0,4!!var:~5,2!!var:~8,2!
echo dir /ta
IF !VAR! GEQ !TIME1! IF !VAR! LEQ !TIME2! (
xcopy "%%a" "C:\Documents and Settings\Administrator\桌面\p\%time2%")
)
if %errorlevel% == 0 echo OK
if %errorlevel% == 1 echo NG
pause

第一个问题:
以上回显的返回值是否是FOR命令的返回值,我在运行过程中,复制成功还是失败都回显OK,例如:假设123文件内不存在时间段内的文件,运行命令回显OK。
但是把md创建文件夹的程序去掉,复制成功就显示OK,失败显示NG。例如:假设123文件内不存在时间段内的文件,运行命令回显NG。
希望看下有什么解决的方法。

第二个问题:
还有就是运行过程中,速度特别慢。。是否是因为命令运行检索123文件夹内所有文件,来一一比对他们的日期是否在时间段内,在进行复制。
123文件夹内大约有10000个300K左右的文件,是否是造成运行过慢的原因。
是否还有其他复制时间段的方法,来解决复制时间过慢的问题。。
一个300K的文件用上面的批处理大约复制12秒,复制10000个大约33个小时,真的太慢啦。。。。希望高手帮忙看看。
请高手帮忙写个程式,,要复制144个文件夹内的某个时间段创建的文件,每个文件夹内有100到10000个不等的大小约300K的文件,希望不会运行过慢。在线等