¿Se puede mostrar AppleScript cuando se ejecutó un script por última vez?

3

¿Hay alguna forma de que un comando AppleScript muestre la última vez que se ejecutó? Tengo algunos scripts en los que sería útil tener una marca de tiempo de la última vez que se ejecutó para fines de registro. Soy muy verde para las secuencias de comandos, cualquier idea es bienvenida.

    
pregunta Ubermaan 31.03.2018 - 10:55

3 respuestas

3

Además de guardar información en un archivo de disco , o descartar para usar una utilidad de línea de comando , también se puede guardar como un valor de un property dentro del script , preferiblemente guardado como una aplicación . IMO Guardar el valor de un property dentro del script es lo más fácil desde el aspecto de la codificación, sin embargo, debido a que el valor se restablece si el < em> code se modifica o recompila más tarde, esto puede presentar un inconveniente al usar este método. Solo depende de tus 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:"

Guardé las tres líneas del código como una aplicación llamada Last Run Time y, al ejecutarlo, mostró la notificación como:

También puede usar el comando display dialog o display alert si no desea usar el comando display notification .

Nota: El ejemplo AppleScript código es solo eso y no emplea ningún manejo de errores y está pensado solo para mostrar una de las muchas formas de realizar una tarea. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado.

    
respondido por el user3439894 01.04.2018 - 02:00
3

Asegúrese de que si cambia el valor de set theFile to "/tmp/script_run_log.txt" -- value can be changed , entonces también debe cambiar el valor de set theLogFile to "Macintosh HD:private:tmp:script_run_log.txt" en la segunda secuencia de comandos

-- 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 comprobar el archivo de registro por ú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

    
respondido por el wch1zpink 31.03.2018 - 23:52
3

Puede recuperar la hora en la que se accedió por última vez a un 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 solo solicita los datos de acceso al archivo, ya que stat también puede proporcionar otros datos, como los tiempos de modificación, los tiempos de creación, la información del dispositivo, la propiedad y los permisos. datos, etc. Consulte man stat si desea saber más sobre las otras capacidades de stat .

  • -t "%Y-%m-%d %H:%M:%S" : Esto le indica a stat qué formato debe mostrar la fecha y la hora en. Puede cambiar esto para adaptarlo a sus necesidades, pero a los efectos de esta respuesta, Escogí un formato estandarizado que da salida a uno de mis AppleScripts: 2018-03-31 16:55:42 .

Tenga en cuenta que el tiempo de acceso para un archivo AppleScript se actualizará, no solo si se ejecuta, sino también si se lee, copia o mueve.

Para usar esto dentro de un AppleScript, puedes 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
    
respondido por el CJK 31.03.2018 - 18:24

Lea otras preguntas en las etiquetas