Board logo

标题: 怎样用批处理的循环命令? [打印本页]

作者: dos@fans     时间: 2004-6-6 00:00    标题: 怎样用批处理的循环命令?

最近下载了一个命令行形式的图像格式转换工具,为了批量转换文件格式,我用for命令编写了如下的批处理文件:
for %%c in (*.jpg) do ImageConverter  %%c.png
结果可以实现转换。问题是文件名全变成这种形式:***.JPG.PNG(字符全为大写)而我只想改变文件的后缀名,请问我应该怎样编写这个批处理文件?
多谢了。

作者: Climbing     时间: 2004-6-7 00:00
这跟你的转换工具有关系,你应该从转换工具的命令行入手解决这个问题。
作者: willsort     时间: 2004-6-8 00:00    标题: 用FOR实现批量转换

Re dos@fans:

  你的命令行用法似乎有问题,类似于这类的软件一般需要两个参数,但是你只给ImageConverter提供了一个参数。是不是少些了一个%%C?类似于下面的语句:
  for %%c in (*.jpg) do ImageConverter  %%c %%c.png

  如果是这样,问题就不难理解了。FOR解析*.jpg的参数时,缺省的将文件扩展名也赋予了%%C。如果你的系统是2k,XP,可以利用FOR的参数开关来仅仅解析文件的主文件名,具体参数请用FOR/?查询;如果你的系统是9x系列,可以在执行循环后,再执行以下两句代码恢复扩展名。
  ren *.png *.
  ren *.jpg *.png

作者: dos@fans     时间: 2004-6-11 00:00
多谢指教
能不能解释一下ren命令的这种用法?


[此贴子已经被作者于2004-6-11 下午 05:02:15编辑过]



作者: 人物菜鸟     时间: 2004-6-11 00:00
ren就是给文件改名吧,
ren 源文件名 目的文件名    就OK了.