Board logo

标题: [文件操作] 请解释一下批量重命名图片文件的批处理? [打印本页]

作者: shenlong2006    时间: 2009-11-9 18:15     标题: 请解释一下批量重命名图片文件的批处理?

for %%a in (*.jpg) do call :renstart  "%%a" %1
:renstart
for /L %%b in (1,1,9) do rename %1 %200%%b.jpg
for /L %%b in (10,1,99) do rename %1 %20%%b.jpg
for /L %%b in (100,1,999) do rename %1 %2%%b.jpg

看得不是太明白,想请教一下各位高人,尤其是其中的"%200","%20"和"%2"不知道是什么意思.

[ 本帖最后由 shenlong2006 于 2009-11-9 18:19 编辑 ]
作者: batman    时间: 2009-11-9 18:20

%200=%2+00 %20=%2+0
至于%1 %2是怎么回事,在论坛搜索下call教程吧
作者: shenlong2006    时间: 2009-11-9 18:24     标题: 恩,多谢了,我到论坛看看!

恩,多谢了,我到论坛看看!
作者: zljzsmzzx    时间: 2009-11-10 10:06

写这代码的人也太没有效率观念了吧。每重命名一次都要for/l循环999次,如果是大批量重命名,这效率真不敢想。再者,文件名或是路径中含有变量的话最好用半角双引号""括起来,以免变量值中含有空格而找不到文件或路径。
  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir/b *.jpg') do (
  3.     set/a n+=1
  4.     set "m=00!n!"
  5.     set "m=!m:~-3!"
  6.     ren "%%i" "%~1!m!.jpg"
  7. )
复制代码

这是根据楼主的代码写的,只是不知道楼主代的第一个%1是怎样传递给批处理的,所以没测试。应该是没问题的。

[ 本帖最后由 zljzsmzzx 于 2009-11-10 12:35 编辑 ]
作者: zqz0012005    时间: 2009-11-10 12:23     标题: 回复 2楼 的帖子

batman 为什么不关闭此帖?标题明显不符合版规要求。




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