Script Fu - Batch Command Error - Printable Version +- Gimp-Forum.net (https://www.gimp-forum.net) +-- Forum: GIMP (https://www.gimp-forum.net/Forum-GIMP) +--- Forum: Extending the GIMP (https://www.gimp-forum.net/Forum-Extending-the-GIMP) +---- Forum: Scripting questions (https://www.gimp-forum.net/Forum-Scripting-questions) +---- Thread: Script Fu - Batch Command Error (/Thread-Script-Fu-Batch-Command-Error) |
Script Fu - Batch Command Error - James Parkinson - 12-12-2022 Learning Scrpt Fu is slow. Any assistance is welcome regarding the Error message. I am trying to replicated the reported success of others who have posted online. I am running GIMP 2.10.32. Opening CMD Window within the folder: C:\Users\parkinsj\Desktop\GIMP_Batch\ ; which contains two JPG files, I ran the following: gimp-2.10 -i -b "(batch-auto-fix "C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg")" -b "(gimp-quit 0)" The result was: batch command experienced an execution error: Error: eval: unbounded variable: C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg The SCM file batch-auto-fix.scm is at location: C:\Program Files\GIMP 2\share\gimp\2.0\scripts The SCM file reads: (define (batch-auto-fix pattern radius amount threshold) (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)))) (plug-in-unsharp-mask RUN-NONINTERACTIVE image drawable radius amount threshold) (gimp-levels-stretch drawable) (plug-in-color-enhance RUN-NONINTERACTIVE image drawable) (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename) (gimp-image-delete image)) (set! filelist (cdr filelist))))) RE: Script Fu - Batch Command Error - Ofnuts - 12-12-2022 1) Learning Python-fu is somewhat faster, 2) "(batch-auto-fix "C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg")" -b "(gimp-quit 0)": nested quotes and backslashes... the problem isn't Gimp, but the Windows shell processor (CMD.EXE). You likely have to escape the quotes around "C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg" because they are inside those that delimit "(batch-auto-fix "C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg")". I don't remember if this is done by doubling them ("") or by putting a backslash (\"). Your error message indicates that the quotes where stripped out to the input string so Gimp no longer sees a string literal. Then use (gimp-message ...) to print the values of the arguments you received and se of this is what you expect. No point in debugging code that doesn't receive proper arguments. RE: Script Fu - Batch Command Error - Kevin - 12-12-2022 As Ofnuts says, your command line needs fixing: gimp-2.10 -i -b "(batch-auto-fix \"C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg\")" -b "(gimp-quit 0)" Also you would be better putting the script in your personal scripts folder not in the system folder - the next update you do to GIMP runs the risk of removing anything that's not supplied by the GIMP installer. Your personal folder would normally be C:\Users\parkins\AppData\Roaming\GIMP\2.10\scripts I assume you already know that your script is going to overwrite your images. RE: Script Fu - Batch Command Error - James Parkinson - 12-13-2022 (12-12-2022, 10:28 PM)Kevin Wrote: As Ofnuts says, your command line needs fixing: How does GIMP find the Personal Script Folder? I am not familiar with GIMP Messages. I assume this is a way to get more details on the Error. I ran this at the CMD Line. gimp-2.10 -i -b "(batch-auto-fix \""C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg\"")" -b "(gimp-quit 0)" New result: batch commend experienced an error: Error: not enough arguments RE: Script Fu - Batch Command Error - Ofnuts - 12-14-2022 (12-13-2022, 06:45 PM)James Parkinson Wrote:(12-12-2022, 10:28 PM)Kevin Wrote: As Ofnuts says, your command line needs fixing: Why the \"" (backslash double-quote)? not enough arguments is a Scheme error, you are calling a function with not enough arguments. Looking at your code you define (batch-auto-fix pattern radius amount threshold) so it takes 4 arguments and your line above only passes the pattern argument, so this is probably why Gim/Script-fu complains. RE: Script Fu - Batch Command Error - James Parkinson - 12-14-2022 (12-14-2022, 06:11 PM)Ofnuts Wrote:(12-13-2022, 06:45 PM)James Parkinson Wrote:(12-12-2022, 10:28 PM)Kevin Wrote: As Ofnuts says, your command line needs fixing: I corrected the CMD line script to: gimp-2.10 -i -b "(batch-auto-fix ""C:\Users\parkinsj\Desktop\GIMP_Batch\img*.jpg\"" 5.0 0.5 0)" -b "(gimp-quit 0)" ... and moderate success, no run errors Now in checking the images they have not changed. The learning curve continues. Much thanks for your help. |