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

[文件操作] 批处理根据a文件夹里文件名两个位置之间的字符,剪切到b文件夹相同字符的子文件夹

[复制链接]
发表于 2022-5-20 10:10:40 | 显示全部楼层 |阅读模式
根据a文件夹里文件名两个位置之间的字符,把文件剪切到b文件夹相同字符的子文件夹里啊

我的D盘里有两个文件夹:基因合成和测序结果;
            测序结果文件夹里有很多文件,比如:[K3746-5001-1-26-PUC57]M13-48_B03 ;  [K3746-5001-25-48-PUC57]M13-48_B03;
                                                           [T4567-5003-25-48-PUC57]M13-47_C03 ;     [V2001-5002-25-48-PUC57]M13-47_C03
           基因合成文件夹里有子文件夹,子文件夹里又有文件夹5001    5002    5003    5004等等。
           我想把测序结果文件夹里的文件,根据名字的第8-11个字符,分别是:   5001   5001   5003   5002,把相应的文件剪切到基因合成子 子相应文件夹里。
  求大神教我啊 :'( :'( :'(
 楼主| 发表于 2022-5-20 10:15:57 | 显示全部楼层
测序结果文件夹里的文件格式是ab1  :[K3746-5001-25-48-PUC57]M13-47_C03.ab1
发表于 2022-5-20 10:22:29 | 显示全部楼层
最好提供一下基因合成文件夹的结构:tree一下发上来。

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

发表于 2022-5-20 11:30:56 | 显示全部楼层
回复 4# 13545876873


推荐使用 tree 或 tree /f 命令说明你的文件夹结构,参考教程:
http://bbs.bathome.net/thread-2514-1-1.html

Q-07:怎样把CMD窗口里的结果复制出来?
http://bbs.bathome.net/thread-3473-1-1.html

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

 楼主| 发表于 2022-5-20 13:07:58 | 显示全部楼层
发表于 2022-5-20 13:43:43 | 显示全部楼层
回复 10# 13545876873
将下面代码保存为ANSI编码:
  1. @echo off
  2. cd /d "D:\基因合成\2022.5"
  3. for /d %%i in (*) do (
  4.     move "D:\测序结果\*-%%i-*.ab1" "%%i"
  5. )
  6. pause
复制代码
发表于 2022-5-20 13:55:39 | 显示全部楼层
本帖最后由 yakeyun 于 2022-5-20 14:07 编辑

回复 1# 13545876873

贴主要表达的意思:
D盘存在如下两个目录:
D:\基因合成\2022.5
                              \5001\
                              \5002\
                              \5003\
D:\测序结果
                  \[K3746-5001-1-26-PUC57]M13-48_B03.ab1
                  \[K3746-5001-25-48-PUC57]M13-48_B03.ab1
                  \[T4567-5003-25-48-PUC57]M13-47_C03.ab1
                  \[V2001-5002-25-48-PUC57]M13-47_C03.ab1

需求读取D:\测序结果目录中的文件,根据5001、5002、5003字段分类文件,然后移动到D:\基因合成\2022.5\目录下对应字段文件夹中。

另存为ANSI格式,不然中文目录不会被识别。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in ('dir /a /s /b "D:\测序结果\*.ab1"') do (
  3. set dvn=%%a
  4. for /f "tokens=2 delims=[]" %%b in ("!dvn!") do (
  5. for /f "tokens=2 delims=-" %%c in ("%%b") do (
  6. set mls=%%c
  7. set Ns=%date:~0,4%
  8. set Ys=%date:~5,2%
  9. if !Ys!==01 (set "Ys=!Ys:01=1!")
  10. if !Ys!==02 (set "Ys=!Ys:02=2!")
  11. if !Ys!==03 (set "Ys=!Ys:03=3!")
  12. if !Ys!==04 (set "Ys=!Ys:04=4!")
  13. if !Ys!==05 (set "Ys=!Ys:05=5!")
  14. if !Ys!==06 (set "Ys=!Ys:06=6!")
  15. if !Ys!==07 (set "Ys=!Ys:07=7!")
  16. if !Ys!==08 (set "Ys=!Ys:08=8!")
  17. if !Ys!==09 (set "Ys=!Ys:09=9!")
  18. set "today=!Ns!.!Ys!"
  19. if exist D:\基因合成\!today!\!mls! (move /y "!dvn!" "D:\基因合成\!today!\!mls!" >nul) else (
  20. md "D:\基因合成\!today!"
  21. md "D:\基因合成\!today!\!mls!"
  22. move /y "!dvn!" "D:\基因合成\!today!\!mls!" >nul
  23. )
  24. )
  25. )
  26. )
  27. exit
复制代码

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

发表于 2022-5-20 14:41:29 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2022-5-20 14:42 编辑

回复 10# 13545876873
这样也行:
  1. @echo off
  2. cd /d "D:\测序结果"
  3. for /f "tokens=1-2* delims=-" %%a in ('dir /b /a-d *.ab1') do (
  4.     if not exist "D:\基因合成\2022.5\%%b" md "D:\基因合成\2022.5\%%b"
  5.     move "%%a-%%b-%%c" "D:\基因合成\2022.5\%%b"
  6. )
  7. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

 楼主| 发表于 2022-5-20 15:11:16 | 显示全部楼层
本帖最后由 13545876873 于 2024-10-28 16:42 编辑

谢谢大哥们的帮助,这个问题已经解决
我还有个问题:   比如在我把[G3005-5001-11-24-PUC57]M13-48_B03.ab1    剪切到5001文件夹里后。  
                   5001文件夹里有一个htm文件   ,   我要怎么把htm里  11-24的的序列提取出来,并新建一个5001-11-24的文本,把这个序列粘贴进去。   同时新建一个5001的文本,把5001全序列粘贴进去啊 :'(
 楼主| 发表于 2022-5-20 15:48:17 | 显示全部楼层
回复 13# qixiaobin0715
大哥,这个运行很好
能教教我另外一个难题,怎么从HTM里提取相应的序列吗。   每天重复太多了 :'( :'(
发表于 2022-5-20 16:00:27 | 显示全部楼层
你把之前5001文件夹和处理后文件夹要达到的效果发到网盘上共享,我可以试试看。
发表于 2022-5-20 17:06:24 | 显示全部楼层
回复 15# 13545876873


条件本身就冲突,没办法操作。5001存在2个文档,取值会出错。
 楼主| 发表于 2022-5-20 19:06:42 | 显示全部楼层
:'( :'( 回复 18# yakeyun
发表于 2022-5-21 07:21:13 | 显示全部楼层
传百度阿里糸估计很多人不会点。蓝奏才方便,123次之。

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

 楼主| 发表于 2022-5-21 07:48:25 | 显示全部楼层
大哥   回复 17# qixiaobin0715



蓝奏链接   https://wwn.lanzoub.com/iV6li056n7cj
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 00:34 , Processed in 0.014079 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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