找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26093|回复: 5

[文件操作] [已解决]批处理按关键字移动对应的文件到指定文件夹里

[复制链接]
发表于 2019-3-19 21:23:44 | 显示全部楼层 |阅读模式
按关键字清单,移动关键字所对应的文件到指定文件夹里
待移动的文件名规律:由"-"分为N个部分,如:"H01-AMa46306-U678DEC070-1-VL-_R256.ab1", 其中关键字为第1个"-"和第2个"-"之间的部分,如"AMa46306",关键字在所有文件中是唯一的。

1. 初始状态:存放关键字清单的txt和待移动的文件在同一个文件夹。
2. 运行程序:在该文件夹中新建一些文件夹,文件夹名称满足2个条件:1) 文件夹的名称是取关键字所对应的文件名的第2个"-"和第5个"-"之间的部分。2)只有关键字清单中出现的才新建文件夹,不在清单中的不建。并且可能有多个关键字对应同一个文件夹。
3. 移动关键字所对应的文件到这些新建的文件夹,剩下的文件不移动。

如: 清单中出现 AMa46306AMa46307, 则根据文件名新建文件夹"U678DEC070-1-VL",并将其对应文件"H01-AMa46306-U678DEC070-1-VL-_R256.ab1" 和 H02-AMa46307-U678DEC070-1-VL-_R256.ab1 移动到文件夹中。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2019-3-19 21:38:48 | 显示全部楼层
本帖最后由 zaqmlp 于 2019-3-19 21:41 编辑
  1. @echo off
  2. title 互助互利,代码可用,扫码头像,感谢赞助;有问题,加QQ956535081及时沟通
  3. cd /d "%~dp0"
  4. for /f "delims=" %%a in ('type "清单.txt"') do (
  5.     for /f "delims=" %%b in ('dir /a-d/b *-%%a-*-*-*-*.*') do (
  6.         for /f "tokens=1-5* delims=-" %%c in ("%%b") do (
  7.             if not exist ".\%%e-%%f-%%g" md ".\%%e-%%f-%%g"
  8.             echo;"%%b" --^> ".\%%e-%%f-%%g"
  9.             move /y "%%b" ".\%%e-%%f-%%g"
  10.         )
  11.     )
  12. )
  13. pause
复制代码
 楼主| 发表于 2019-3-19 22:05:45 | 显示全部楼层
回复 2# zaqmlp


   提示“系统找不到指定的文件”。

附件已上传,麻烦帮忙看下。
发表于 2019-3-19 22:13:58 | 显示全部楼层
回复 3# 022540
txt名称改了没,实际跟代码中的是否一致???
 楼主| 发表于 2019-3-19 22:18:48 | 显示全部楼层
回复 4# zaqmlp


   可以用了,刚刚没有改文件名称。非常感谢老师!
发表于 2019-3-19 22:23:48 | 显示全部楼层
回复 5# 022540

赞助才是有力的感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 03:29 , Processed in 0.033137 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表