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

[文件操作] 求助批处理实现文件夹批量重命名

[复制链接]
发表于 2024-5-13 20:26:45 | 显示全部楼层 |阅读模式
本帖最后由 liaoguinan 于 2024-5-14 08:33 编辑

XX·1111-11-1111-1小明啊撒大声地
XX·1111-11-1111-3啊实打实大师
XX·1111-11-1111-4是撒大声地
XX·1111-11-1111-11啊撒大声地
XX·1111-11-1111-18我实打实
XX·1111-11-1111-111啊实打实的
XX·1111-11-1111-118哦哦青蔷薇
XX·1111-11-1111-128这咋啊啊
XX·1111-11-1111-189流量计刚刚
XX·1111-11-1111-228想啊啊试试

如何批量把上面文件夹后面改为序号如下
XX·1111-11-1111-1小明啊撒大声地
XX·1111-11-1111-2啊实打实大师
XX·1111-11-1111-3是撒大声地
XX·1111-11-1111-4啊撒大声地
XX·1111-11-1111-5我实打实
XX·1111-11-1111-6啊实打实的
XX·1111-11-1111-7哦哦青蔷薇
XX·1111-11-1111-8这咋啊啊
XX·1111-11-1111-9流量计刚刚
XX·1111-11-1111-10想啊啊试试
发表于 2024-5-13 20:41:04 | 显示全部楼层
回复 1# liaoguinan


文件夹数量超过10个的时候,命名规则是否考虑改成这样:
XX·1111-11-1111-01阿达是的
XX·1111-11-1111-02啊实打实大师
...
XX·1111-11-1111-10哈哈哈
XX·1111-11-1111-11嘿嘿嘿
 楼主| 发表于 2024-5-13 20:54:51 | 显示全部楼层
回复 2# Batcher


    是的
发表于 2024-5-14 00:32:34 | 显示全部楼层
请提供真实文件名,并适当描述。

如果要杜撰假名
比如把 张三 替换为 小明、苹果、手机 都可以,2024 替换为 3135,5313 也可以。但是替换为 XX和1111,就让人看不懂了。
并且不能有歧义,
例子中每个数字序号后都跟 "阿" 或者 "啊",是不是可以把 啊 和 阿 当作分隔符呢?
 楼主| 发表于 2024-5-14 08:34:17 | 显示全部楼层
回复 4# 77七


    XX·1111-11-1111-1小明啊撒大声地
XX·1111-11-1111-3啊实打实大师
XX·1111-11-1111-4是撒大声地
XX·1111-11-1111-11啊撒大声地
XX·1111-11-1111-18我实打实
XX·1111-11-1111-111啊实打实的
XX·1111-11-1111-118哦哦青蔷薇
XX·1111-11-1111-128这咋啊啊
XX·1111-11-1111-189流量计刚刚
XX·1111-11-1111-228想啊啊试试

如何批量把上面文件夹后面改为序号如下
XX·1111-11-1111-1小明啊撒大声地
XX·1111-11-1111-2啊实打实大师
XX·1111-11-1111-3是撒大声地
XX·1111-11-1111-4啊撒大声地
XX·1111-11-1111-5我实打实
XX·1111-11-1111-6啊实打实的
XX·1111-11-1111-7哦哦青蔷薇
XX·1111-11-1111-8这咋啊啊
XX·1111-11-1111-9流量计刚刚
XX·1111-11-1111-10想啊啊试试


前面是号码段,后面中文字不固定。只改后面的数字改成序号
发表于 2024-5-14 08:49:33 | 显示全部楼层

只要被更名序号的前置字符量相等,再预估一个被更名序号的最大长度,解法就明确了...
发表于 2024-5-14 10:03:56 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-5-14 10:58 编辑


针对楼主示例,前置字符量=16,且内容相同,被更名序号最大长度=3 算法关键是据此构建一个可基于被更名序号排序的链表文件...
如前置字符串内容不同,第2行中的匹配表达式改为一连串?*(亦可用for /l 累加合成)
如要简化第5行代码,可用call子过程代劳...
以下代码存为test.bat运行,置于被更名文件夹所在同目录

  1. @echo off &setlocal enabledelayedexpansion
  2. (for /d %%d in ("XX·1111-11-1111-*") do (
  3.         set "v=%%d"
  4.         set "vp=!v:~,16!"&set "v=!v:~16!"
  5.         if "!v:~1,1!" gtr "9" (echo,00!v:~,1!/!vp!/!v:~1!/%%d) else if "!v:~2,1!" gtr "9" (echo,0!v:~,2!/!vp!/!v:~2!/%%d) else (echo,!v:~,3!/!vp!/!v:~3!/%%d)
  6. ))>1.tmp
  7. for /f "tokens=1-4 delims=/" %%1 in ('sort 1.tmp') do (
  8.         set/a "n+=1"&set "vn=00!n!"&set "vn=!vn:~-3!"
  9.         ren "%%4" "%%2!vn!%%3"
  10. )
  11. del/q 1.tmp&endlocal&pause&exit/b
复制代码
发表于 2024-5-14 14:53:03 | 显示全部楼层
思路:借助excel表格为每一个文件夹重命名操作生成一条指令。
步骤:①先把前缀分离(前缀不同可通过分隔号分开原始名称后复制所需区域),②使用通配符检索替换所有的数字,获得文字部分,③使用自动填充生成数列。使用公式组合①③②得到目标文件名序列。全选初始文件,ctrl+shifit+c复制包含文件名的文件地址,检索替换掉前面的路径。使用公式组合指令字符串。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 00:04 , Processed in 0.021120 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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