[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

按关键字清单,移动关键字所对应的文件到指定文件夹里
待移动的文件名规律:由"-"分为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 移动到文件夹中。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp


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

附件已上传,麻烦帮忙看下。

TOP

回复 3# 022540
txt名称改了没,实际跟代码中的是否一致???
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 4# zaqmlp


   可以用了,刚刚没有改文件名称。非常感谢老师!

TOP

回复 5# 022540

赞助才是有力的感谢
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表