applescript studio strings hintereinander setzen

twiederh

Aktives Mitglied
Thread Starter
Dabei seit
18.05.2005
Beiträge
1.442
Reaktionspunkte
141
Hallo,
ich baue gerade in Xcode mit Applescript und Cocoa ein kleines Programm, mit dem ich eine Netzwerkroute setzen kann. Dabei frage ich im Fenster Netzwerk, Maske und Router ab und will dann in der shell den Befehl route add absetzen. Bisher sieht mein Script so aus:

on clicked theObject
--define local variables
local network, mask, router, shellScript
-- set local variables from textfields
tell setrouteWindow of theObject
try
set network to contents of text field "networkField" as string
set mask to contents of text field "maskField" as string
set router to contents of text field "routerField" as string
end try
if theObject's name is "addButton" then
set shellScript to "route add -net " & "router " & "network " & "mask"
end if
if theObject's name is "removeButton" then
set shellScript to "route delete -net " & "router " & "network " & "mask"
end if
do shell script shellScript with administrator privileges
end tell
end clicked

So wie es bisher geschrieben ist, kann ich den Befehl für route add noch nicht zusammensetzen, die Fehlermeldung deutet darauf hin, dass z.B. statt des Inhaltes der Variable network die Variable selbst in den String eingesetzt wird. Leider habe ich bisher nirgendwo ein Beispiel gefunden, wie ich einen String aus Variablen zusammensetzen kann. Kann mir hier jemand weiterhelfen?

Gruss,
Thomas.
 
Moin!

Die Variable heißt network, nicht "network". Das ist ein String mit dem Wert "network".

Code:
set a to "Der "
set b to "Sinn des Lebens "
set result to a & b & "lautet " & (41 + 1) & "!"
display dialog result

Viele Grüsse,
Christian
 
  • Gefällt mir
Reaktionen: twiederh
Hallo Christian, vielen Dank für die Antwort. Leider klappt das noch nicht. Jetzt bekomme ich die Meldung, dass die Variable router nicht definiert sei:
set shellScript to "route add -net " & router & " " & network & " " & mask

Irgendwie stehe ich hier wohl auf der Leitung.

Gruss,
Thomas.
 
Hallo Thomas,
dann pack doch mal ein

Code:
…
on error e
display dialog e
end try

in Deinen try Block. Da läuft irgend etwas krum. Du siehst es aber nicht, weil du es in einen try Block versteckt hast und mögliche Fehler einfach ignorierst.

Viele Grüsse,
Christian
 
  • Gefällt mir
Reaktionen: twiederh
ok, jetzt bin ich etwas weiter:
tell setrouteWindow of theObject muss richtig heißen tell window of theObject, sonst werden die Variablen überhaupt nicht gefüllt.
 
Zurück
Oben Unten