【问题标题】:create loop in batch for multiple export with ImageMagick使用 ImageMagick 批量创建循环以进行多次导出
【发布时间】:2013-04-04 09:36:08
【问题描述】:

我正在尝试制作一个处理多个图像文件的批处理文件。

这些文件被命名为 P_1316_0001.png P_1316_0002.png P_1316_0003.png 等等。 LETs sqy P_1316 是 VARSESSION) 感谢 ImageMagick 程序,我可以直接批量转换图像。

基本上我想做的是:

创建一个变量,该变量会递增,直到文件夹中没有要转换的文件。假设 i 为 0001

,将文件从 png 转换为 jpg(转换 %VARSESSION%%i%.png %VARSESSION%%i%.jpg)

我希望你能帮助我。 谢谢你

丹尼尔

【问题讨论】:

    标签: batch-file imagemagick dos


    【解决方案1】:

    您的问题有点限制,但为了适合您指定的精确参数,

    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
    

    但是还有更好的方法,比如

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

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

    注意:关键字 ECHO 插入到 SHOW 批次建议做什么。删除ECHO 以实际执行操作

    【讨论】:

    • 你能解释一下~ni是什么吗?
    • 当然 - 请参阅提示中的 for /?%%~ni 表示文件的名称 %%i 您也可以使用 f 作为完整文件名,d 作为驱动器名,p 作为路径名,x 作为扩展名 - 或这些的任何合理组合,例如作为%%~nxi。你也可以使用a 表示属性,t 表示日期,z 表示大小。或者,如果 %%i 中的字符串可能被引用,您可以使用 %%~i 删除 "quotes"。此外,您可以使用 %~n 其中 n 为 [0..9] 来删除 [或将其他运算符应用于] 参数 %n 到批处理或过程的引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多