Board logo

标题: [文件操作] [已解决]BAT怎样批量修改文件夹名称? [打印本页]

作者: wenlishasha    时间: 2013-2-26 23:30     标题: [已解决]BAT怎样批量修改文件夹名称?

一批文件夹,原文件夹名是中文+拉丁字母,想将文件夹中的拉丁字母放在前,中文放在后
比如:将“Primula sinopurpurea紫花雪山报春”改为“紫花雪山报春Primula sinopurpurea”
求代码
作者: d981830719    时间: 2013-2-27 11:25

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

备注:本人才学几天 不过 批处理真的很方便 不懂的可以去我空间看看 http://user.qzone.qq.com/578278547/infocenter我也是才做的这个教程 方便以后忘记了 自己还可以看看的
作者: wenlishasha    时间: 2013-2-27 12:26

回复 2# d981830719


    O(∩_∩)O谢谢!!
作者: apang    时间: 2013-2-27 13:17

原文件夹名到底是字母在前,还是中文在前?

中文字符之间有空格没有?中文和字母分界处有空格没有?
作者: wenlishasha    时间: 2013-2-27 14:36

回复 4# apang


    没有空格,中文在前
作者: apang    时间: 2013-2-27 15:34

  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,与需要改名的文件夹放在一起,试一下
作者: wenlishasha    时间: 2013-2-27 16:38

回复 6# apang


    O(∩_∩)O谢谢啦,可以,可惜我不能评分了
能不能改为对所有文件都有效?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2