标题: [文件操作] [已解决]批处理如何复制指定文件夹内的指定规则的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
- @echo off
- cd /d "C:\folder"
- for /f %%i in ('powershell -c "Get-Date -uformat '%%m%%d'"') do (
- set "Today=%%i"
- )
- copy /y "ABCD%Today%.txt" "D:\temp\"
- copy /y "HIJK%Today%.txt" "D:\temp\"
- 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 编辑
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- start mshta VBScript:Execute("msgbox(""%info%""):close")
- set "原目录=C:\folder"
- set "新目录=D:\temp"
- if not exist "%新目录%" md "%新目录%"
- for %%a in ("ABCD" "HIJK" "XYZA") do (
- for /f "tokens=1* delims=:" %%b in ('dir /a-d/b/tw/o-d "%原目录%\%%~a*.txt"^|findstr /n .') do (
- if %%b leq 3 (
- echo;"%原目录%\%%c" --^> "%新目录%\"
- copy /y "%原目录%\%%c" "%新目录%\"
- )
- )
- )
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |