Board logo

标题: [文本处理] 求教批处理遍历文件复制 当天创建的所有文件到另一文件夹 卡死 [打印本页]

作者: xiaomaowing    时间: 2021-7-2 16:29     标题: 求教批处理遍历文件复制 当天创建的所有文件到另一文件夹 卡死

参考了网络资料,写了一个,查找当天创建的文件,备份到另一文件夹的批处理。
如果dir 不加 /s 就只能是D盘下面,没有查找子目录,是能够正常复制新文件过去的。写了 /s 程序就死了。D盘有2T的文件,DOC等比较多。18万个文件。
下面是代码,请求大神给个解决方案。
  1. @echo off&setlocal enabledelayedexpansion
  2. set num=0
  3. set daytime_1=%date:~,10%
  4. md 备份当天文件>nul 2>nul
  5. for /f "delims=" %%a in ('dir /s/a-d/b') do (
  6. echo %%a,%%~ta
  7. set daytime_2=%%~ta
  8. set daytime_2=!daytime_2:~,10!
  9. if "!daytime_1!"=="!daytime_2!" (
  10. set /a num+=1
  11. echo "备份"
  12. echo %%a,%%~ta
  13. copy /n "%%a" "备份当天文件">nul
  14. )
  15. )
  16. echo 共备份!num!个文件,end...
  17. pause
复制代码

作者: idwma    时间: 2021-7-2 16:54

不用这么复杂的
xcopy /D:%date:~5,2%-%date:~8,2%-%date:~0,4% z:\s z:\ss
作者: xiaomaowing    时间: 2021-7-2 18:36

2T大的文件盘卡着不动了。30多G测试还是可以的。太卡,有什么好的解决方案?
作者: newswan    时间: 2021-7-2 23:50

本帖最后由 newswan 于 2021-7-2 23:51 编辑

文件“有归档属性”。
如果,复制范围内,只有每天新生成的文件有这个属性,那么利用这个属性,
xopy /m 参数 只拷贝A属性的文件,拷贝之后取消A属性。

简单判断A属性,比日期比较快多了。
作者: newswan    时间: 2021-7-2 23:56

另外,可以考虑 robocopy,原理相同,
作者: xiaomaowing    时间: 2021-7-5 09:19

回复以上,问题不是出在 复制过程中 ,是出现在 扫描过程中,没办法,试试多线程方式了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2