标题: [文件操作] [已解决]批处理按关键字移动对应的文件到指定文件夹里 [打印本页]
作者: 022540 时间: 2019-3-19 21:23 标题: [已解决]批处理按关键字移动对应的文件到指定文件夹里
按关键字清单,移动关键字所对应的文件到指定文件夹里
待移动的文件名规律:由"-"分为N个部分,如:"H01-AMa46306-U678DEC070-1-VL-_R256.ab1", 其中关键字为第1个"-"和第2个"-"之间的部分,如"AMa46306",关键字在所有文件中是唯一的。
1. 初始状态:存放关键字清单的txt和待移动的文件在同一个文件夹。
2. 运行程序:在该文件夹中新建一些文件夹,文件夹名称满足2个条件:1) 文件夹的名称是取关键字所对应的文件名的第2个"-"和第5个"-"之间的部分。2)只有关键字清单中出现的才新建文件夹,不在清单中的不建。并且可能有多个关键字对应同一个文件夹。
3. 移动关键字所对应的文件到这些新建的文件夹,剩下的文件不移动。
如: 清单中出现 AMa46306和 AMa46307, 则根据文件名新建文件夹"U678DEC070-1-VL",并将其对应文件"H01-AMa46306-U678DEC070-1-VL-_R256.ab1" 和 H02-AMa46307-U678DEC070-1-VL-_R256.ab1 移动到文件夹中。
作者: zaqmlp 时间: 2019-3-19 21:38
本帖最后由 zaqmlp 于 2019-3-19 21:41 编辑
- @echo off
- title 互助互利,代码可用,扫码头像,感谢赞助;有问题,加QQ956535081及时沟通
- cd /d "%~dp0"
- for /f "delims=" %%a in ('type "清单.txt"') do (
- for /f "delims=" %%b in ('dir /a-d/b *-%%a-*-*-*-*.*') do (
- for /f "tokens=1-5* delims=-" %%c in ("%%b") do (
- if not exist ".\%%e-%%f-%%g\" md ".\%%e-%%f-%%g\"
- echo;"%%b" --^> ".\%%e-%%f-%%g\"
- move /y "%%b" ".\%%e-%%f-%%g\"
- )
- )
- )
- pause
复制代码
作者: 022540 时间: 2019-3-19 22:05
回复 2# zaqmlp
提示“系统找不到指定的文件”。
附件已上传,麻烦帮忙看下。
作者: zaqmlp 时间: 2019-3-19 22:13
回复 3# 022540
txt名称改了没,实际跟代码中的是否一致???
作者: 022540 时间: 2019-3-19 22:18
回复 4# zaqmlp
可以用了,刚刚没有改文件名称。非常感谢老师!
作者: zaqmlp 时间: 2019-3-19 22:23
回复 5# 022540
赞助才是有力的感谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |