我有一个基于的脚本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 运行:
设置 gimpEXE="C:\Program Files\GIMP 2\bin\gimp-2.8.exe"
%gimpEXE% -i -b "(batch-colorize *.png 90 73 15)" -b "(gimp-quit 0)";
但 GIMP 说:
批处理命令遇到执行错误:
错误:(:1)eval:未绑定变量:*.png
于是我尝试:
%gimpEXE% -i -b "(batch-colorize ""*.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退出0)'
但随后 GIMP 又说出了上述内容:
GIMP-错误:无法打开文件“C:\myfolder\with\png*.png”:无法打开“C:\myfolder\with\png*.png”进行读取:参数无效
答案1
您假设操作系统会为您扩展 *.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
则需要。