联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@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个小时,真的太慢啦。。。。希望高手帮忙看看。