for %%a in (*.jpg) do (
set/a n+=1
call ren "%%a" %%n%%.jpg
)作者: 523066680 时间: 2008-7-28 08:49 短 超短……无语……无奈……羡慕……
楼上的代码已经简洁到没什么可以解释的了,有的话就是call部分……这是一个很好的
例子,楼主要掌握技巧哦!(郁闷……我不会这个……楼主真好运,刚来就有的学)
贴上我的一个,效率很低,我刚入门时写的:(不用set命令哦)
ren *.jpg *.[jpg]
for /l %%a in (1,1,10000) do (
ren *.[jpg] a-%%a.jpg 2>nul
if not exist *.[jpg] exit
)
解释:将所有的jpg文件改为 [jpg] 格式
然后 的for /l %%a 从1到10000
f1 --重命名*. [jpg] 为 1.jpg 由于系统错误,所以只能重命名出一个1.jpg
f2 --重命名*. [jpg] 为 2.jpg 因为是ren *.[jpg] 所以 之前的1.jpg不会被改成2.jpg
并且仍把剩下的[jpg]提取一个2.jpg 达到了一个个重命名的效果。
f3 f4以此类推
此方法不支持大家用,纯粹是绕弯路……吃饱了撑着,明明精华贴里面有,却硬要
写个自己的。
[ Last edited by 523066680 on 2008-7-31 at 03:06 PM ]作者: 23112656 时间: 2008-7-30 23:12 呵呵```谢谢啊```其实我觉得绕弯路是成为高手的捷径啊`作者: 23112656 时间: 2008-7-30 23:31 可是用了2楼的代码为什么数字并不是按照顺序来排列的呢?准确说数字是到100以后才开始正确排列的.100以前的数字都是跳着改名的作者: pusofalse 时间: 2008-7-31 07:51 不是跳着改名,而是排列顺序不同,你右键一下,名称排列。
在我电脑上运行正常。作者: studythedos 时间: 2008-7-31 08:45 以前见个批量改的,是先删到回收站的,觉得挺麻烦的,原来这里还有这么简单的啊。。学了。。作者: 23112656 时间: 2008-8-1 04:33
Quote:
Originally posted by pusofalse at 2008-7-31 07:51 AM:
不是跳着改名,而是排列顺序不同,你右键一下,名称排列。
在我电脑上运行正常。
我排列过了还是我说的那样啊,所以我建了2个批,执行完一个后排列不正常,然后再执行第二个就好了,这之间的问题是什么呢?和延时有关系吗?作者: 523066680 时间: 2008-8-1 10:40 可能……
试试把for %%a in (*.jpg) do (
改成 for /f "tokens=*" %%a in ('dir *.jpg') do (
我觉得有可能是,重命名后,已经被rename过的文件 仍被在for读取
导致重复重命名同一部分文件