求个批量改名的批处理命令

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:17:15
我一个文件夹内有几千张如下名称的图片:
006025_9485.jpg
006078_9fv5d.jpg
006032_9cv5f.jpg
006076_9143.jpg
006043_2350.jpg
... ...

其中, _号之前是6位数字,没有必然的固定规律;_号后的位数不固定,更没有规律.

我想要实现的改名效果是将上述文件名改为:
006025.jpg
006078.jpg
006032.jpg
006076.jpg
006043.jpg
... ...

简单点说,就是把所有文件名称的前六位数字保留就可以了。不知道怎样用批处理来实现?

(注:请别回复广告说用某某批量改名文件,我都试过,完全傻瓜式的,没法实现)。

复制以下内容保存为bat文件,放在你要处理的.jpg文件的文件夹里运行.
@echo off
for /f "delims=" %%i in ('dir/b *.jpg') do call :ss %%i
goto :eof
:ss
set var=%1
set num=%var:~0,6%
ren %var% %num%.jpg
goto :eof

这种问题可以用正则表达式搞定。不过Windows下的批处理似乎不支持正则表达式。

许多脚本语言都支持正则表达式,Unix和Linux也有许多利用正则表达式的工具。

嗯,找到一个。具体用法自己查查,很好学的:
http://www.cnblogs.com/iyond/archive/2006/05/01/390203.aspx

比如你把这些文件都放在名为pic的目录下,那么在windows命令行的模式下进入这个目录,然后输入“ren ??????_*.jpg ??????.jpg”然后回车就可以了。(只要输入双引号里面的内容)

这个用VBS或者VB很简单

rename 一下.
left(006025_9485.jpg,6) & ".jpg"

你弄的出来?我觉得不可能
要是前面的是一样的后面在+个.多少多少还可能吧```