Board logo

标题: [文件操作] [已解决]批处理如何复制指定文件夹内的指定规则的3个文件到另一个目标文件夹? [打印本页]

作者: yusukeboy    时间: 2019-4-12 19:35     标题: [已解决]批处理如何复制指定文件夹内的指定规则的3个文件到另一个目标文件夹?

本帖最后由 yusukeboy 于 2019-4-19 08:39 编辑

求助!在一个文件夹C:/folder内,每天会生成ABCD0412.txt  HIJK0412.txt  XYZA0412.txt的文件,以及一些其他的文件。前面的4个字符是固定的,后面4位是当天的日期(比如今天是0412),要怎样才可以将这个文件夹内这三种命名的文件,每种创建日期最新的3个,复制到另一个文件夹D:/temp内呢?非常感谢。(o゜ω゜o)
作者: Batcher    时间: 2019-4-12 20:00

  1. @echo off
  2. cd /d "C:\folder"
  3. for /f %%i in ('powershell -c "Get-Date -uformat '%%m%%d'"') do (
  4.     set "Today=%%i"
  5. )
  6. copy /y "ABCD%Today%.txt" "D:\temp\"
  7. copy /y "HIJK%Today%.txt" "D:\temp\"
  8. copy /y "XYZA%Today%.txt" "D:\temp\"
复制代码

作者: yusukeboy    时间: 2019-4-13 10:00

感谢管理员,可能是我说的有点不清楚,我是想表达过去3天的这3种文件的意思
作者: zaqmlp    时间: 2019-4-13 11:49

本帖最后由 zaqmlp 于 2019-4-15 10:54 编辑
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. start mshta VBScript:Execute("msgbox(""%info%""):close")
  6. set "原目录=C:\folder"
  7. set "新目录=D:\temp"
  8. if not exist "%新目录%" md "%新目录%"
  9. for %%a in ("ABCD" "HIJK" "XYZA") do (
  10.     for /f "tokens=1* delims=:" %%b in ('dir /a-d/b/tw/o-d "%原目录%\%%~a*.txt"^|findstr /n .') do (
  11.         if %%b leq 3 (
  12.             echo;"%原目录%\%%c" --^> "%新目录%\"
  13.             copy /y "%原目录%\%%c" "%新目录%\"
  14.         )
  15.     )
  16. )
  17. pause
复制代码

作者: yusukeboy    时间: 2019-4-15 07:34

感谢楼上大佬,但是试运行之后,果然还是把去年12月29日到31日这3天的复制过来了,可以实现根据修改日期来决定复制哪几个文件吗?
作者: Batcher    时间: 2019-4-15 09:33

回复 3# yusukeboy


请把真实的需求更新到顶楼

比如今天是0415,那么你需要复制的是0412?还是0412、0413、0414?还是0413、0414、0415?
作者: zaqmlp    时间: 2019-4-15 10:55

回复 5# yusukeboy
已修改
作者: yusukeboy    时间: 2019-4-19 08:39

回复6楼管理员
我所说的“这个文件夹内这三种命名的文件,每种创建日期最新的3个” 是这三种文件各三个最新的,由于有时候是第二天操作,有时候是当天操作,所以是“创建日期最新的3个”,也就是3x3有9个文件
回复7楼大佬
修改之后的测试能够实现,非常感谢
作者: zaqmlp    时间: 2019-4-19 08:49

回复 8# yusukeboy

赞助下吧




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