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

[文件操作] 【已解决】批处理把100个数据,分成了4个文件夹,按照一定规则排序

[复制链接]
发表于 2024-8-21 08:59:55 | 显示全部楼层 |阅读模式
100个数据,分成了4个文件夹(四个阶段),每个文件夹内保存了该数据的4个不同时期是数据,如何用批处理将其单独整理为按照文件名称命名的文件夹,每个文件夹下放置该文件的不同阶段的四个文件。

每个文件的命名为:阶段1_1~阶段1_100
阶段2_1~阶段2_100
阶段3_1~阶段3_100
阶段4_1~阶段4_100

合并后想要达到的效果是:阶段1_1; 阶段2_1; 阶段3_1; 阶段4_1 在同一个文件夹内。同时生成100个文件

如果可以将这些文件按照的排序按照: 阶段1_1; 阶段2_1; 阶段3_1; 阶段4_1; 阶段1_2; 阶段2_2; 阶段3_2; 阶段4_2放置到一个文件夹内,那就更好了。

谢谢大家

评分

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

查看全部评分

发表于 2024-8-21 10:21:19 | 显示全部楼层
回复 1# mqa3


    把代码保存为bat文件,跟4个文件夹放在一起。
运行后即可得到100个文件夹,每个文件夹下包含4个文件:阶段1_*; 阶段2_*; 阶段3_*; 阶段4_*
注意:::运行前记得备份数据。
  1. @echo off
  2. for /l %%n in (1, 1, 100) do (
  3.         for /f "delims=" %%i in ('dir /b /s /a-d "阶段*_*"^|findstr /irc:".*_%%n"') do (
  4.                 if not exist %%n md %%n
  5.                 move "%%i" "%%n"
  6.         )
  7. )
  8. pause
复制代码
发表于 2024-8-21 10:42:29 | 显示全部楼层
放到一个文件夹中并且按你所说的顺序排列,文件名要做一下改动。将1-100的顺序号移到文件名最前面,把1、2位的数字前用0补位为3位数:
  1. @echo off
  2. md "NewFolder"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /s /a-d "阶段*_*.*"') do (
  5.     for /f "tokens=1* delims=_" %%j in ("%%~nxi") do (
  6.         set n=00%%~nk
  7.         set n=!n:~-3!
  8.         copy "%%i" "NewFolder\!n!_%%j%%~xi"
  9.     )
  10. )
  11. pause
复制代码

评分

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

查看全部评分

 楼主| 发表于 2024-8-21 10:57:46 | 显示全部楼层
回复 3# qixiaobin0715
感谢大神的支持,确实成功了。有个小问题合并的文件编号是从002开始的,能否调整到001开始呢。

发表于 2024-8-21 11:06:13 | 显示全部楼层
回复 4# mqa3
代码除了用0补位和移位外,别的地方并没有改动,你的源文件是从2开始的?
发表于 2024-8-22 08:40:46 | 显示全部楼层
求助时,如果牵扯到文件处理,能提供文件扩展名最好,可以精准定位到你要处理的对象,简化代码。这里假设数据文件为电子表格,xls格式,若是其它文件的话请自行修改。
楼主的第一个要求,数据不限于100个:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /b /a-d *.xls') do (
  3.     for /f "tokens=2 delims=_" %%j in ("%%~ni") do (
  4.         md "%%j" 2>nul
  5.         copy "%%i" "%%j">nul
  6.     )
  7. )
  8. pause
复制代码
 楼主| 发表于 2024-8-22 13:14:56 | 显示全部楼层
回复 6# qixiaobin0715

感谢大神 @qixiaobin0715  完美解决我的问题。我坛真的卧虎藏龙,批处理真是博大精深。
发表于 2024-8-23 10:18:27 | 显示全部楼层
不是批处理博大精深,而是批处理正巧善于处理此类问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 18:51 , Processed in 0.019452 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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