3 votos

¿Puede AppleScript mostrar cuándo se ejecutó por última vez un script?

¿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.

3voto

qarma Puntos 71

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, como stat 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éase man stat si quiere saber más sobre las otras capacidades de stat .

  • -t "%Y-%m-%d %H:%M:%S" : Esto dice stat 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

3voto

wch1zpink Puntos 11

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

enter image description here

3voto

user3439894 Puntos 5883

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:

enter image description here

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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X