PDA

Vollständige Version anzeigen : batch Script testen


klaus_harrer
17.03.2008, 15:28
Hallo

Es ist zur Zeit schwierig ein Batch Script zu starten da gerade auf Tiny-Fu umgestellt wird.

Hat jemand kurz Zeit ein Script zu testen das überprüft ob "file-glob" ein vector b.z.w eine Liste zurückgibt.

Dieses Script funktioniert von Gimp-2.4.0 bis Gimp-2.4.2.

Ich suche also Leute die Gimp-2.4.3 oder höher nutzen und das unten folgende Script in den Scriptordner von Gimp kopieren und in der Shell folgenden Befehl eingeben.


gimp -i -b '(batch-test "/path/*.jpg")' -b '(gimp-quit 0)'


Das Script gibt die Dateinamen wieder.

Wenn das Script nicht funktioniert .Bitte in der Script-Console
(Extras->Script-Fu->Script-Fu-Konsole) folgenden Befehl eingeben.


(batch-test "/path/*.jpg")


Und die Fehlerausgabe posten.



(define (batch-test pattern)
;; gimp -i -b '(batch-test "/path/*.jpg")' -b '(gimp-quit 0)'
;;(if(not(equal? (substring path (-(string-length path) 1) (string-length path)) "/"))
;;(set! path(string-append path "/")))
(define (main-function-test filename)
(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE
filename filename)))
(drawable (car (gimp-image-get-active-layer image)))
(image_name(car(gimp-image-get-name image)))
)
(gimp-message image_name)
(gimp-image-delete image))
)
;;end mainfunction
(let* ((filelist (cadr (file-glob pattern 1)))
(image_count(- (car (file-glob pattern 1)) 1))
)
;;if not vector
(if(vector? filelist)
(begin
(while (not (< image_count 0))
(let*((file_name (vector-ref filelist image_count)))
(main-function-test file_name)
(gimp-message "Bin ein vector")
(set! image_count (- image_count 1))))
)
(while (not (null? filelist))
(let*((file_name (car filelist)))
(main-function-test file_name)
(gimp-message "Bin eine liste")
(set! filelist (cdr filelist))))

)
)
)



Unter .gimp-2.4/scripts/batch_test.scm speichern.

Dank im voraus.

MfG
Klaus

schumaml
17.03.2008, 18:42
Es ist zur Zeit schwierig ein Batch Script zu starten da gerade auf Tiny-Fu umgestellt wird.

Eher "wurde".
Siehst du bei dieser Funktion denn Unterschiede zwischen 2.2 und 2.4?

Veltin
18.03.2008, 15:18
meine Gimp-Version: 2.4.5
Betriebssystem: windows 2000

Das Script hab ich Kopiert in C:\Programme\GIMP-2.0\share\gimp\2.0\scripts

Aufruf in der Konsole mit:
C:\Programme\GIMP-2.0\bin>gimp-2.4 -i -b '(batch-test "C:/Dokumente und Einstellungen/Administrator/Desktop/Test/*.jpg")' -b '(gimp-quit 0)'

Ausgabe:
GIMP-Fehler: ╗C:\Dokumente und Einstellungen\Administrator\Desktop\Test\*.jpg)'½
konnte nicht ge÷ffnet werden: Invalid argument

GIMP-Fehler: ╗C:\Programme\GIMP-2.0\bin\0)'½ konnte nicht ge÷ffnet werden: No su
ch file or directory

batch command: executed successfully.
batch command: executed successfully.

Aufruf in der Konsole mit:
C:\Programme\GIMP-2.0\bin>gimp-2.4 -i -b '(batch-test "C:\Dokumente und Einstellungen\Administrator\Desktop\Test\*.jpg")' -b '(gimp-quit 0)'

Ausgabe:
GIMP-Fehler: ╗C:\Dokumente und Einstellungen\Administrator\Desktop\Test\*.jpg)'½
konnte nicht ge÷ffnet werden: Invalid argument

GIMP-Fehler: ╗C:\Programme\GIMP-2.0\bin\0)'½ konnte nicht ge÷ffnet werden: No su
ch file or directory

batch command: executed successfully.
batch command: executed successfully.

Aufruf in der Konsole mit:
C:\Programme\GIMP-2.0\bin>gimp-2.4 -i -b '(batch-test "C:\\Dokumente und Einstellungen\\Administrator\\Desktop\\Test\\*.jpg")' -b '(gimp-quit 0)'

Ausgabe:
GIMP-Fehler: ╗C:\\Dokumente und Einstellungen\\Administrator\\Desktop\\Test\\*.j
pg)'½ konnte nicht ge÷ffnet werden: Invalid argument

GIMP-Fehler: ╗C:\Programme\GIMP-2.0\bin\0)'½ konnte nicht ge÷ffnet werden: No su
ch file or directory

batch command: executed successfully.
batch command: executed successfully.

Den Ordner findet es allerdings immerhin.
Versuch mit einem nicht existierenden Ordner:

Aufruf in der Konsole mit:
C:\Programme\GIMP-2.0\bin>gimp-2.4 -i -b '(batch-test "C:/Dokumente und Einstellungen/Administrator/Desktop/Tralala/*.jpg")' -b '(gimp-quit 0)'

Ausgabe:
GIMP-Fehler: ╗C:\Dokumente und Einstellungen\Administrator\Desktop\Tralala\*.jpg
)'½ konnte nicht ge÷ffnet werden: No such file or directory

GIMP-Fehler: ╗C:\Programme\GIMP-2.0\bin\0)'½ konnte nicht ge÷ffnet werden: No su
ch file or directory

batch command: executed successfully.
batch command: executed successfully.

Ich hab meinen Ordner mal verschoben:

Aufruf in der Konsole mit:
C:\Programme\GIMP-2.0\bin>gimp-2.4 -i -b '(batch-test "C:/Test/*.jpg")' -b '(gimp-quit 0)'

Ausgabe:
GIMP-Fehler: ╗C:\Test\*.jpg)'½ konnte nicht ge÷ffnet werden: Invalid argument

GIMP-Fehler: ╗C:\Programme\GIMP-2.0\bin\0)'½ konnte nicht ge÷ffnet werden: No su
ch file or directory

batch command: executed successfully.
batch command: executed successfully.





Was die Script-Fu Konsole dazu meint:

> (batch-test "C:/Test/*.jpg")
()

> (batch-test "C:\Test\*.jpg")
()

> (batch-test "C:\\Test\\*.jpg")
()

Bei dem letzten Versuch mit (batch-test "C:\\Test\\*.jpg") hats sogar tatsächlich was angezeigt. Hab mal nen Screenshot gemacht (siehe Anhang). Dazu sind nochn paar hundert Fortschrittsanzeigen aufgepoppt :)

Also noch eben Schnell die Standart Fehlerausgabe geöffnet und das Script nochmal ausgeführt. Und siehe da, da waren alle Einträge. Nur dass zwischen diesen jeder zweite Eintrag 'Bin eine Liste' war. So viele Bilder mit dem Namen hab ich nich xD
(Insgesamt 82 Meldungen, also 41 Dateien, wie mir mein Script auch ausgegeben hatte).

Scheint also schon irgendwie zu funktionieren

klaus_harrer
18.03.2008, 16:39
Hallo Veltin

Dank dir, hat mir sehr weitergeholfen.
Nun zu deinem Problem.
Vieleicht können wir uns über icq oder jabber unterhalten.

Mfg
Klaus Harrer

Veltin
18.03.2008, 16:46
Schön wenns dir weitergeholfen hat
ich habs nämlich nit ganz kapiert xD

So, schreib dir eben ne pm