Gibt es eine Möglichkeit für einen AppleScript-Befehl, die letzte Ausführung anzuzeigen? Ich habe einige Skripte, bei denen es nützlich wäre, einen Zeitstempel der letzten Ausführung für Protokollierungszwecke zu haben. Ich bin sehr grün im Scripting, alle Ideen sind willkommen.
Abgesehen vom Speichern von Informationen in einer separaten Datei auf der Festplatte oder der Verwendung eines Befehlszeilenprogramms können sie auch als Wert von a property
innerhalb des Skripts gespeichert werden , vorzugsweise als Anwendung . IMO Das Speichern des Werts von a property
innerhalb des Skripts ist aus Codierungsaspekten am einfachsten, da der Wert jedoch zurückgesetzt wird, wenn der Code später geändert oder neu kompiliert wird, kann dies einen Nachteil bei der Verwendung dieser Methode darstellen. Es hängt nur von Ihren tatsächlichen Bedürfnissen ab. Das heißt, und um Ihnen eine weitere Option zur Auswahl zu geben:
Beispiel AppleScript -Code :
property lastRunTime : missing value
set lastRunTime to (current date) as string
display notification lastRunTime subtitle "This application was last run:"
Ich habe die drei Codezeilen als Anwendung namens Last Run Time gespeichert und beim Ausführen wurde die Benachrichtigung wie folgt angezeigt:
Sie können auch den Befehldisplay dialog
or verwenden, wenn Sie den Befehl nicht verwenden möchten .display alert
display notification
Hinweis: Der Beispiel -AppleScript- Code ist genau das und verwendet keine Fehlerbehandlung und soll nur eine von vielen Möglichkeiten zum Ausführen einer Aufgabe zeigen. Es liegt immer in der Verantwortung des Benutzers, eine geeignete Fehlerbehandlung nach Bedarf/Wunsch hinzuzufügen/zu verwenden .
Stellen Sie sicher, dass Sie, wenn Sie den Wert von ändern , auch den Wert von im zweiten Skript set theFile to "/tmp/script_run_log.txt" -- value can be changed
ändern müssenset theLogFile to "Macintosh HD:private:tmp:script_run_log.txt"
-- PLACE THIS FOLLOWING CODE ANYWHERE IN A SCRIPT FILE
-- FOR NEATNESS, CONSIDER PLACING AT SCRIPT BOTTOM
-- THIS CODE WRITES TIME AND DATE OF LAST RUN OF THE SCRIPT OR APP
-- TO A SEPARATE FILE
writeToFile()
on writeToFile()
set currentDate to (current date) as string
set theFile to "/tmp/script_run_log.txt" -- value can be changed
set myName to name of (info for (path to me))
set theText to myName & " was last run on " & currentDate
try
set writeToFile to open for access theFile with write permission
write theText & linefeed to writeToFile as text starting at eof
close access theFile
on error errMsg number errNum
close access theFile
set writeToFile to open for access theFile with write permission
write theText & linefeed to writeToFile starting at eof
close access theFile
end try
end writeToFile
Speichern Sie den folgenden Code als Anwendung. Jedes Mal, wenn Sie die Protokolldatei nach der letzten Ausführung eines bestimmten Skripts überprüfen möchten, starten Sie einfach diese App
set theLogFile to "Macintosh HD:private:tmp:script_run_log.txt"
set lastParagraph to paragraphs of (read alias theLogFile) as list
display alert ¬
theLogFile message item -2 of lastParagraph ¬
buttons ¬
"OK" default button ¬
"OK" giving up after 15
Sie können die Zeit abrufen, zu der zuletzt auf eine Datei zugegriffen wurde, indem Sie das Befehlszeilentool stat
mit den folgenden Argumenten verwenden:
stat -f "%Sa" -t '%Y-%m-%d %H:%M:%S' /path/to/file
-f "%Sa"
: Hiermit werden nur die Dateizugriffsdaten abgefragt, da stat
auch andere Daten bereitgestellt werden können, z. B. Änderungszeiten, Erstellungszeiten, Geräteinformationen, Eigentums- und Berechtigungsdaten usw. Sehen Sie, man stat
wenn Sie mehr über die anderen Funktionen von erfahren möchten stat
.
-t "%Y-%m-%d %H:%M:%S"
: Dies gibt an stat
, in welchem Format das Datum und die Uhrzeit ausgegeben werden sollen. Sie können dies an Ihre Bedürfnisse anpassen, aber für die Zwecke dieser Antwort habe ich ein standardisiertes Format ausgewählt, das dies für eines meiner AppleScripts ausgibt: 2018-03-31 16:55:42
.
Denken Sie daran, dass die Zugriffszeit für eine AppleScript-Datei nicht nur aktualisiert wird, wenn sie ausgeführt wird, sondern auch, wenn sie gelesen, kopiert oder verschoben wird.
Um dies in einem AppleScript zu verwenden, können Sie es in Folgendes einschließen do shell script
:
do shell script "stat -f '%Sa' -t '%Y-%m-%d %H:%M:%S' " & ¬
quoted form of POSIX path of theFileAlias
quoted form of
handhabt: Es umschließt den Pfad in Anführungszeichen, aber Sie müssen den vollständigen Pfad verwenden (dh /Users/%you%/path/to/file
und nicht ~/path/to/file
). Aber wenn Sie das Eigentum zurückgeholt haben POSIX path of
, sollte das in Ordnung sein.
Tetsujin
Übermaan
Übermaan