Osascript verändert script?

F

fiveyears

Aktives Mitglied
Thread Starter
Dabei seit
29.05.2004
Beiträge
106
Reaktionspunkte
2
Hallo,

wenn ich mit osascript ein script starte, wird komischerweise das script als verändert markiert und das Änderungsdatum und die Änderungsuhrzeit auf jetzt geändert. Wie kommt dieses Verhaltet zustande und kann man dies ändern.

Gruß fiveyears
 
Kann ich bei mir nicht nachvollziehen (10.7.4)
 
Ich habe das Problem auch. Es ist aber überall präsent.
Allein wenn ich Dateien mit QuickLook ansehe werden die Daten geändert. Total nervig.

Lösung: Mach nen Schloss an die Datei.

Viele Grüße
 
Bei mir ja (10.7.4), vielleicht liegt es ja am script, ich hatte das script in der Dropbox liegen, es wurde immer wieder synchronisiert. Jetzt habe ich es als app gespeichert, da bleibt die Änderung aus, so wie es sein soll.

Gruß fiveyears

PS: reingefallen, die App wird nicht geändert, aber main.scpt in der App, so dass die Dropbox wieder synchronisiert. Ich starte das script per Geektool aller 30 sek, deshalb mein Problem. Werde wohl ein Shell-script draus basteln, dass wird ausgeführt, ohne das mod-date zu ändern
 
AppleScripts merken sich beim osascript-Aufruf zum Beispiel geänderte Properties. Deshalb dürfte das Script nach dem Aufruf immer neu gesichert werden.

Gruß, Jürgen
 
Vielleicht missverstehe ich Dich…

Aber während der Laufzeit wird doch der Code nicht manipuliert.
Property Werte werden zur Laufzeit gehandhabt und haben mit der Datei selbst nichts zutun.

Viele Grße
 
Die Properties überleben über die Script-Läufe hinweg.

In einem Script wie

Code:
property counter : 0
on run {}
	set counter to counter + 1
end run

wird counter mit jedem Aufruf von dem Script mit osascript höher, obwohl das Script ja nach jedem Lauf beendet wird. Irgendwo muss sich das Script die Werte merken.

Deshalb verhält sich osascript anscheinend ähnlich wie eine Kombination von load script - store script in einem AppleScript.

Nachtrag: Habe noch mal kurz gespielt: Auch normale Variablen überleben. In folgendem Code:

Code:
on run {}
	try
		counter
	on error
		set counter to 0
	end try
	set counter to counter + 1
end run

wird counter auch mit jedem Lauf duch osascript höher. Damit muss das Script immer gesichert werden, auch, wenn gar keine properties vorkommen. (Zum Ansehen habe ich die Variable in dem Handler immer noch in eine Datei gesichert.)

Gruß, Jürgen
 
Zuletzt bearbeitet:
Das stimmt ja auch alles was Du sagst.

Nur passiert das nicht im Skript, sondern im System.
Deshalb erklärt das nicht, weshalb z.B. beim Ausführen eines Skripts das Änderungsdatum neu gesetzt wird.

Viele Grüße
 
Man kann das Problem tatsächlich umschiffen (ist nicht auf meinem Mist gewachsen, habe ich irgendwo gefunden):

Das Script wird tatsächlich nicht neu gesichert, wenn der run-Handler gar keine Variablen deklariert.

Code:
on run {}
	run script file "Pfad:Zu:Deinem:Script.scpt"
end run

ändert sich beim Aufruf mit osascript nicht. Und weil »Script.scpt« nicht ge-store-d wird, ändert es sich auch nicht. (Und property-Änderungen überleben entsprechend nicht.) Sollte das Problem lösen.

Gruß, Jürgen
 
Das passiert nicht im System sondern im Script. Du kannst das Script gern per E-Mail versenden, auch das überleben die Properties und die Variablen im run-Handler!

Gruß, Jürgen
 
Zurück
Oben Unten