¿Hay alguna manera de que un comando AppleScript muestre la última vez que se ejecutó? Tengo unos cuantos scripts en los que sería útil tener una marca de tiempo de la última vez que se ejecutó con fines de registro. Soy muy novato en esto de los scripts, cualquier idea es bienvenida.
Respuestas
¿Demasiados anuncios?Se puede recuperar la hora en que cualquier archivo fue último acceso 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 sólo los datos de acceso al archivo, comostat
puede proporcionar también otros datos, como las horas de modificación, las horas de creación, la información del dispositivo, los datos de propiedad y de permisos, etc. Véaseman stat
si quiere saber más sobre las otras capacidades destat
. -
-t "%Y-%m-%d %H:%M:%S"
: Esto dicestat
el formato de salida de la fecha y la hora. Usted puede cambiar esto para satisfacer sus necesidades, pero para los propósitos de esta respuesta, elegí un formato estandarizado que la salida de este para uno de mis AppleScripts:2018-03-31 16:55:42
.
Tenga en cuenta que el tiempo de acceso de un archivo AppleScript se actualizará, no sólo 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
Asegúrese de que si cambia el valor de set theFile to "/tmp/script_run_log.txt" -- value can be changed
entonces debe cambiar el valor de set theLogFile to "Macintosh HD:private:tmp:script_run_log.txt"
en el segundo script también
-- 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 quieras comprobar el archivo de registro de la última vez que se ejecutó un script específico, sólo tienes que lanzar 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
Además de guardar la información en un archivo de disco o desembolsar para utilizar un utilidad de línea de comandos También se puede guardar como valor de un property
dentro del script preferiblemente guardado como un aplicación . OMI Salvar el valor de un property
dentro del script es el más fácil desde el punto de vista de la codificación, sin embargo, porque el valor se restablece si el código es modificada o recompilada posteriormente, esto puede suponer un inconveniente a la hora de utilizar este método. Sólo depende de sus necesidades reales. Dicho esto, y para darle otra opción para elegir:
Ejemplo AppleScript código :
property lastRunTime : missing value
set lastRunTime to (current date) as string
display notification lastRunTime subtitle "This application was last run:"
He guardado las tres líneas de código como aplicación llamado Último tiempo de ejecución y al ejecutarlo, mostró la notificación como:
También puede utilizar el display dialog
o display alert
comando si no quiere utilizar el display notification
comando .
Nota: El ejemplo AppleScript código es sólo eso y no emplea ningún tratamiento de errores y sólo pretende mostrar una de las muchas formas de realizar una tarea. El usuario siempre tiene la responsabilidad de añadir/utilizar las herramientas adecuadas. tratamiento de errores según se necesite/se desee.