我正在使用一些用 GIMP 方案编写的简单脚本。(这是我使用最多的方案......)
我在运行 Windows 或 Linux 的机器上使用它们。大多数时候这不是问题,但有时是,即在处理文件路径上的“\”与“/”时。
有没有一种简单的方法可以从 Scheme 脚本中检测 GIMP 在哪个操作系统上运行?我没有在“ Revised^5 Report on the Algorithmic Language Scheme ”上找到任何东西(但我可能没有找到正确的地方)
我可以做的一个技巧是检查给定文件是否存在,例如,以下工作正常
(define (script-fu-operating-system)
(let* ((the-os "windows"))
(if (= 1 (car (file-glob "/usr/bin/gimp" 0)))
(set! the-os "linux"))
(gimp-message the-os)))
正如迈克尔舒马赫所建议的那样,我尝试同时使用“/”和“\”。
在 Windows 上,它按预期工作,例如对于 (file-jpeg-load),使用 ...
...反斜杠(只需要转义它们):
(file-jpeg-load RUN-INTERACTIVE "C:\\Users\\my.user\\Pictures\\test.jpg" "")
...斜线:
(file-jpeg-load RUN-INTERACTIVE "C:/Users/my.user/Pictures/test.jpg" "")
...甚至可以与混合(反)斜杠一起使用!
(file-jpeg-load RUN-INTERACTIVE "C:/Users\\my.user/Pictures\\test.jpg" "")
然而对于 (file-glob) 它只适用于正确的反斜杠:
(file-glob "C:\\Users\\my.user\\Pictures\\*.jpg" 1) => OK (the file list)
(file-glob "C:/Users/my.user/Pictures/*.jpg" 1) => NOK (empty list)