注意:
为了好区分,本文中需要空格的位置一律用下划线_表示,实际输入中不需要下划线!
一 文件不多的情况下,可实现个性化修改
1,在文件存放的文件夹的空白处,按住shift+鼠标右键---在此处打开命令窗口,输入 dir_/b>name.xls 回车。
2,返回文件夹,打开name表格文件,对每一个文件名数据进行修改。
至于B列名字怎么改,方法和需求不一样,就不细说了。大致结果如下:
其中,C列公式为="ren_"&A1&"_"&B1 (英文状态下输入)
3,在当前文件夹下新建文本文档,打开后缀显示,使得可以看见“.txt”的后缀。然后把C列的数据复制到新建的文本文档中,保存后关闭
4,重命名刚才新建的文本文档--->后缀改为 .bat ,弹出对话框“文件可能不被识别”点击确定。双击运行
二 批量修改后缀
1,在需要修改的文件夹下,新建文本文档
2,输入ren_*.jpg_*.png (修改为其他的后缀类似)
3,保存,重命名文本文档格式为 .bat。双击运行即可把jpg改为png类型。
三 文件数量超级多,文件夹数量多,修改不规则的文件名
对于原始文件名有规律的情况,且需要修改的数量很多成千上万个,而且在不同的文件夹下,可以使用这种方法。
例如一个文件下,有如下文件名,文件名长50(.doc中的“.”也算)
DC-01_20111212_L2A0000610922_1109180281055_01M.eps |
DC-01_20111212_L2A0000610922_1109180281055_01M.jpg |
DC-01_20111212_L2A0000610922_1109180281055_01M.rar |
DC-01_20111212_L2A0000610922_1109180281055_01M.xls |
这是个有规律的文件名,现在要把下划线的几个字段进行位置上的调整,效果如下的首尾两行:
DC-01_20111212_L2A0000610922_1109180281055_01M.eps <----原始名 |
6 8 1 13 17 5 |
f g h i j k |
DC-01_L2A0000610922_1109180281055_01_20111212M.eps <-----修改后要达到的效果 |
代码:
@echo off
for /f "tokens=*" %%a in ('dir /a-d/b "*.*"')do (
set "b=%%a"
call set "l=%%b:~0,6%%" //从第1个字符开始,取前6个字符,即“DC-01_”(小写字母l)
call set "g=%%b:~6,8%%" //从第6个字符开始,取8个字符,即“20111212”
call set "h=%%b:~14,1%%" //从第14个字符开始,取1个字符,即“_”
call set "i=%%b:~15,13%%" //“L2A0000610922”
call set "j=%%b:~28,17%%" //“_1109180281055_01”
call set "k=%%b:~45,5%%" //“M.eps”
call set "d=%%b:~60%%" //需要匹配的字符串数。本例中由于全改所以取值大于实际字符串数值60。
如果只需要改前10位,就只需取10
call set "e=%%l%%%%i%%%%j%%%%h%%%%g%%%%k%%" //把上面取得的字符串按需求进行排列重组
call ren "%%b%%" "%%e%%"
)
保存为.bat文件,只需要把bat放到每一个文件夹运行一次即可修改。
以上就是参考,实际每个人的需求可能不同,这就需要进行举一反三的修改了。
比如上例中,不只是简单的移动位置,还需要修改数值,重命名后缀等等。可以再添加一个变量来实现:
如:把l字段中的DC改为AC,后缀中.xls改为.xlsx ,在给字母L赋值的下一行中添加代码
call set "l=%%l:DC=AC%%" //还是小写字母l
然后重命名呢?自己思考一下
。
。
。
是不是可以用本文的第二种方法提到的,即再建一个bat文件,内容为ren_*.xls_*.xlsx
最后提醒:bat文件只需运行一次,千万别多点,万一出错了就不好再次修改了。最好多建立几个空白文件来进行测试。
先建立文本文档,然后修改.txt的后缀为.xls .rar .rrd .exe的方式来建立测试文件。