¿Hay alguna forma de que un comando de AppleScript muestre la última vez que se ejecutó? Tengo algunas secuencias de comandos en las que sería útil tener una marca de tiempo de la última vez que se ejecutó para fines de registro. Soy muy verde para la creación de scripts, cualquier idea es bienvenida.
Aparte de guardar la información en un archivo de disco separado , o desembolsar para usar una utilidad de línea de comandos , también se puede guardar como un valor dentroproperty
del script , preferiblemente guardado como una aplicación . En mi opinión, guardar el valor de a property
dentro del script es lo más fácil desde el punto de vista de la codificación; sin embargo, debido a que el valor se restablece si el código se modifica o vuelve a compilar más tarde, esto puede presentar un inconveniente al usar este método. Solo depende de tus necesidades reales. Dicho esto, y para darte otra opción a elegir:
Ejemplo de código AppleScript :
property lastRunTime : missing value
set lastRunTime to (current date) as string
display notification lastRunTime subtitle "This application was last run:"
Guardé las tres líneas de código como una aplicación llamada Last Run Time y, al ejecutarla, mostró la notificación como:
También puede usar el comandodisplay dialog
o si no desea usar el comando .display alert
display notification
Nota: El código AppleScript de ejemplo es solo eso y no emplea ningún manejo de errores y solo pretende mostrar una de las muchas formas de realizar una tarea. La responsabilidad siempre recae sobre el Usuario para agregar/usar el manejo de errores apropiado según sea necesario/deseado.
Asegúrese de que si cambia el valor de set theFile to "/tmp/script_run_log.txt" -- value can be changed
, también debe cambiar el valor de set theLogFile to "Macintosh HD:private:tmp:script_run_log.txt"
en el segundo script
-- 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
Guarde el siguiente código como una aplicación. Cada vez que desee verificar el archivo de registro para ver la última vez que se ejecutó un script específico, simplemente inicie esta aplicación
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
Puede recuperar la hora en que se accedió por última vez a cualquier archivo utilizando la herramienta de línea de comandos stat
con los siguientes argumentos:
stat -f "%Sa" -t '%Y-%m-%d %H:%M:%S' /path/to/file
-f "%Sa"
: Esto solicita solo los datos de acceso al archivo, ya que stat
también puede proporcionar otros datos, como horas de modificación, horas de creación, información del dispositivo, datos de propiedad y permisos, etc. Vea man stat
si desea saber más sobre las otras capacidades de stat
.
-t "%Y-%m-%d %H:%M:%S"
: Esto le dice stat
en qué formato generar la fecha y la hora. Puede cambiar esto para satisfacer sus necesidades, pero para los fines de esta respuesta, elegí un formato estandarizado que genera esto para uno de mis AppleScripts: 2018-03-31 16:55:42
.
Tenga en cuenta que el tiempo de acceso a un archivo AppleScript se actualizará, no solo si se ejecuta, sino también si se lee, se copia o se mueve.
Para usar esto dentro de un AppleScript, puede envolverlo dentro de un 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
maneja: rodea la ruta entre comillas, pero debe usar la ruta completa (es decir, /Users/%you%/path/to/file
y no ~/path/to/file
). Pero si ha recuperado la POSIX path of
propiedad, debería estar bien.
Tetsujin
Ubermaan
Ubermaan