2013-04-04 23 views
0

我试图做一个批处理文件,处理多个图像文件。批量创建循环与ImageMagick多个导出

这些文件名为P_1316_0001.png P_1316_0002.png P_1316_0003.png等。 让SQY P_1316是VARSESSION) 感谢ImageMagick的程序我可以将图像直接批量转换。

基本上我想要做的是:

创建将递增,直到没有更多的文件夹中转换的变量。将这个文件从png转换成jpg(假设我是0001)将文件从png转换为jpg(转换%VARSESSION%%i%.png%VARSESSION%%i%.jpg)我希望你能帮助我。 我感谢你

丹尼尔

回答

0

你是一个小的限制你的问题,但是,以适应您所指定的精确参数,

SETLOCAL ENABLEDELAYEDEXPANSION 
for /l %%i in (10001,1,19999) do (
set numb=%%i 
ECHO if exist %varsession%_!numb:~1!.png convert %varsession%_!numb:~1!.png %varsession%_!numb:~1!.jpg 
) 
ENDLOCAL 

但也有更好的方法,这样的as

for /f %%i in ('dir /b /a-d %varsession%_*.png') do (
ECHO convert %%i %%~ni.jpg 
) 

假设要处理所有匹配%varsession%_ *。png的文件。

注意:关键字ECHO插入以显示批处理建议执行的操作。删除ECHO以实际执行动作

+0

你摇滚的人! ;) –

+0

你能解释我〜尼么? –

+0

当然 - 从提示中查看'for /?'。 '%%〜ni'表示文件'%% i'的名字你也可以用'f'表示全文件名,''d'表示驱动名,'p'表示路径名,'x'表示扩展名 - 或者任何合理的这些的组合,如'%%〜nxi'。 Yo也可以使用'a'作为属性,'t'作为日期,'z'作为尺寸。或者,如果%% i中的字符串可能被引用,则可以使用'%%〜i'来删除'“引号”'。此外,您可以使用'%〜n',其中n为[0..9]将批处理或过程中的[或将其他运算符应用于]参数%n的引号删除。 – Magoo