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

[文件操作] [已解决]BAT怎样批量修改文件夹名称?

[复制链接]
发表于 2013-2-26 23:30:41 | 显示全部楼层 |阅读模式
一批文件夹,原文件夹名是中文+拉丁字母,想将文件夹中的拉丁字母放在前,中文放在后
比如:将“Primula sinopurpurea紫花雪山报春”改为“紫花雪山报春Primula sinopurpurea”
求代码

评分

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

查看全部评分

发表于 2013-2-27 11:25:28 | 显示全部楼层
楼主 建议你的问题 可以借助excel   这里要有vba的基础,不知道你会不会vba,所以就没跟你讲vba的做法
第一建立一个bat文件读取所有文件夹的名字"dir /b>a.xls"会在当前目录生成一个a.xls文件
第二打开a.xls然后第二列输入你要改的名字
第三在梯第三列输入公式=“ren ”&a1&“ ”&b1 敲回车 然后拖动下拉
第四复制第三列的代码到txt中修改后缀名 这样就是你所需要的

备注:本人才学几天 不过 批处理真的很方便 不懂的可以去我空间看看 http://user.qzone.qq.com/578278547/infocenter我也是才做的这个教程 方便以后忘记了 自己还可以看看的
 楼主| 发表于 2013-2-27 12:26:55 | 显示全部楼层
回复 2# d981830719


    O(∩_∩)O谢谢!!
发表于 2013-2-27 13:17:25 | 显示全部楼层
原文件夹名到底是字母在前,还是中文在前?

中文字符之间有空格没有?中文和字母分界处有空格没有?
 楼主| 发表于 2013-2-27 14:36:24 | 显示全部楼层
回复 4# apang


    没有空格,中文在前
发表于 2013-2-27 15:34:26 | 显示全部楼层
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. For Each FD in FSO.GetFolder(".").SubFolders
  3.    Set Re = New RegExp
  4.    Re.Pattern = "^([\u4e00-\u9fa5]+)([a-z ]+)$"
  5.    Re.IgnoreCase = True
  6.    For Each a in Re.Execute(FD.Name)
  7.       FD.Name = a.SubMatches(1) & a.SubMatches(0)
  8.    Next  
  9.    Set Re = Nothing
  10. Next
  11. MsgBox "OK"
复制代码
保存为test.vbs,与需要改名的文件夹放在一起,试一下

评分

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

查看全部评分

 楼主| 发表于 2013-2-27 16:38:36 | 显示全部楼层
回复 6# apang


    O(∩_∩)O谢谢啦,可以,可惜我不能评分了
能不能改为对所有文件都有效?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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