Wie Automator-Variablen mit Applescript auslesen?

uhlhorn

uhlhorn

Aktives Mitglied
Thread Starter
Dabei seit
24.05.2005
Beiträge
2.474
Reaktionspunkte
129
Hi,

In Automator gibt es diese wunderbare Funktion „Wert der Variable festlegen“.
Später im Verlauf kann man sie mit „Wert der Variable abfragen“ wieder laden und an eine nachfolgende Aktion übergeben.

Ich habe nun Folgendes Problem:
Eine vorherige Aktion übergibt eine Liste mit Dateinamen an eine Applescript-Aktion. Im Script kann ich sie auslesen mit:

on run {input, parameters}

end run

In der Applescript-Variablen input habe ich dann meine Dateiliste.

Nun habe ich aber noch eine Liste mit Eigenschaften in einer weiteren Liste „Eigenschaften“ gespeichert. Die will ich auch in dem Applescript verwenden. Lese ich nun vor der Applescript-Aktion diese aus, wird diese Liste „Eigenschaften“ an die Liste mit den Dateinamen angehängt.

Nun meine Frage:
Wie kann ich so eine Variable, die mit „Wert der Variable festlegen“ erstellt wurde aus dem Applescript direkt auslesen? Oder wie kann ich sie von der Dateiliste getrennt an mein Script übergeben?

Danke für die Hilfe.
 
Zuletzt bearbeitet:
Hallo!

Siehe hier:

bildschirmfoto20110222u.png



Gruß
 
Ich kann das nicht lesen. Ich verstehe das nicht. :-/

Wenn ich die Automator-Variable Bild habe, und ich will sie mit Applescript auslesen, muss ich dann Folgendes schreiben?:
set Datei to value of variable Bild

Nachtrag:
Ich hab’s herausgefunden:
set Datei to (get value of variable "Bild" of front workflow)

Oder es geht auch so:
set Datei to value of variable "Bild" of front workflow
 
Zuletzt bearbeitet:
Supi. Geht doch mit dem Lesen :)

Beachte, dass das Auslesen und Verwenden der Variablen nur in der Automator-Umgebung funktioniert (also bei geöffnetem "front Workflow")

Die andere Variante, die auch als Programm funktioniert, wäre folgende:
Du fragst den Wert der Variablen ab (wie eingangs von dir beschrieben) und liest sie so aus:

set Var1 to (item 1 of input)
set Var2 to (item 2 of input)


Gruß
 
  • Gefällt mir
Reaktionen: MacNoob20
Ja, danke.

Die frage nun ist nur noch, wie lese ich einzelne Elemente aus der Variablen aus? Ich habe folgende Kombinationen ohne Erfolg probiert:

set Datei_Etikett to item n of variable "Etikett" of front workflow

set Datei_Etikett to item n of (value of variable "Etikett" of front workflow)

set Datei_Etikett to value of (item n of variable "Etikett" of front workflow)

set Datei_Etikett to item n of value of variable "Etikett" of front workflow
 
Kommt darauf an, was du vorhast. Sollen die Elemente alle verwurstet werden, dann z.B. so

set Datei to value of variable "Bild" of front workflow
set Datei_Etikett to (every item of Datei)


oder einzeln

set Datei_Etikett_1 to (item 1 of Datei)
set Datei_Etikett_2 to (item 2 of Datei)


oder

repeat with Datei_Etikett in Datei
--tue dies und das
end repeat


oder andere
 
Nö, das geht leider nicht. Ich habe es so (siehe Code) und erwarte zwei Ergebnisse (nur so, um das zu testen): Eine Liste mit den Bildern, eine zweite Liste mit den Zahlen. Doch ich erhalte immer:

>„item 2 of variable "Etikett" of workflow 1“ kann nicht gelesen werden. Ungültiger Index. (-1719)<

Code:
on run {input, parameters}
	
	set Ausgabe_File to {}
	set Ausgabe_Etikett to {}

	repeat with n from 1 to (count input)
		
		set Bild to item n of input
		copy Bild to the end of Ausgabe_File
		
		set Datei_Etikett to (item n of variable "Etikett" of front workflow)
		copy Datei_Etikett to the end of Ausgabe_Etikett
		
	end repeat

return {Ausgabe_File, Ausgabe_Etikett}
end run
 
Falls das jemand sucht, das ist die korrekte Lösung:
tell application "Automator" to set Datei to value of variable "Bild" of front workflow as text

(„as text wird nur gebraucht, wenn man es als Type „Text“ benötigt.)
 
Zurück
Oben Unten