在Windows上从命令行批量转换图像

纽克斯

我有一个基于GIMP批处理教程的脚本

  (define (batch-colorize pattern
                              hue
                              saturation
                              lightness)
  (let* ((filelist (cadr (file-glob pattern 1))))
    (while (not (null? filelist))
           (let* ((filename (car filelist))
                  (image (car (gimp-file-load RUN-NONINTERACTIVE
                                              filename filename)))
                  (drawable (car (gimp-image-get-active-layer image))))
             (gimp-colorize drawable
                            hue saturation lightness)
             (gimp-file-save RUN-NONINTERACTIVE
                             image drawable filename filename)
             (gimp-image-delete image))
           (set! filelist (cdr filelist)))))

因此,现在在带有cmd图像的文件夹中运行:

SET gimpEXE =“ C:\ Program Files \ GIMP 2 \ bin \ gimp-2.8.exe”

%gimpEXE%-i -b“(批量着色* .png 90 73 15)” -b“(gimp-quit 0)”;

但是,GIMP说:

批处理命令遇到执行错误:

错误:(:1)eval:未绑定变量:* .png

因此,我尝试了:

%gimpEXE%-i -b“(批量着色”“ * .png”“ 90 73 15)” -b“(gimp-quit 0)”;

但是,GIMP说:

GIMP错误:无法打开文件C:\ myfolder \ with \ png \ 90:没有这样的文件或目录

GIMP错误:无法打开文件C:\ myfolder \ with \ png \ 73:没有这样的文件或目录

GIMP错误:无法打开文件C:\ myfolder \ with \ png \ 15:没有这样的文件或目录

GIMP错误:无法打开文件C:\ myfolder \ with \ png \ 0:没有这样的文件或目录

因此,然后我尝试了原始示例中的内容(我认为是针对Linux的女巫):

%gimpEXE%-i -b'(批量着色“ * .png” 90 73 15)'-b'(gimp-quit 0)'

但随后GIMP表示以上所有内容:

GIMP错误:无法打开文件“ C:\ myfolder \ with \ png * .png”:无法打开“ C:\ myfolder \ with \ png * .png”来读取:无效的参数

斯科特·麦金尼

您假设操作系统将为您扩展* .png,但是由于它被埋在命令行参数的带引号的字符串内,因此扩展不会发生。这应该可以解决此问题:

SET gimpEXE="C:\Program Files\GIMP 2\bin\gimp-2.8.exe"
for %%i in (*.png) do %gimpEXE% -i -b "(batch-colorize %%i 90 73 15)" -b "(gimp-quit 0)"

请注意,%%i仅当批处理文件中包含时才需要。如果直接在提示符下运行命令,%i则必须输入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章