AppleScript può essere visualizzato quando è stata eseguita l'ultima volta uno script?

3

C'è un modo per un comando di AppleScript per visualizzare l'ultima volta che è stato eseguito? Ho alcuni script in cui sarebbe utile avere un timestamp dell'ultima volta che è stato eseguito per scopi di registrazione. Sono molto verde agli script, ogni idea è ben accetta.

    
posta Ubermaan 31.03.2018 - 10:55
fonte

3 risposte

3

Oltre a salvare informazioni in un file del disco separato, o in uscita per usare un'utilità della riga di comando , può anche essere salvato come un valore di property all'interno dello script , preferibilmente salvato come applicazione . IMO Il salvataggio del valore di una property nello script è il più semplice da un aspetto di codifica, tuttavia poiché il valore viene ripristinato se < em> code è successivamente modificato o ricompilato, questo può presentare un inconveniente nell'usare questo metodo. Dipende solo dalle tue reali esigenze. Detto questo, e per darti un'altra opzione tra cui scegliere:

Esempio AppleScript codice :

property lastRunTime : missing value
set lastRunTime to (current date) as string
display notification lastRunTime subtitle "This application was last run:"

Ho salvato le tre righe di code come application denominate Last Run Time e dopo averlo eseguito, ha mostrato la notifica come:

Puoi anche usare il display dialog o display alert comando se non vuoi usare il display notification comando .

Nota: il esempio codice AppleScript è proprio questo e non impiega alcuna gestione degli errori e intende solo mostrare uno dei molti modi per svolgere un compito. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.

    
risposta data 01.04.2018 - 02:00
fonte
3

Assicurati di modificare il valore di set theFile to "/tmp/script_run_log.txt" -- value can be changed , quindi devi anche modificare il valore di set theLogFile to "Macintosh HD:private:tmp:script_run_log.txt" nel secondo 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

Salva il seguente codice come applicazione ,. Ogni volta che desideri controllare il file di registro per l'ultima volta in cui è stato eseguito uno specifico script, avvia questa 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

    
risposta data 31.03.2018 - 23:52
fonte
3

Puoi recuperare l'ora in cui un file era l'ultimo accesso utilizzando lo strumento da riga di comando stat con i seguenti argomenti:

    stat -f "%Sa" -t '%Y-%m-%d %H:%M:%S' /path/to/file
  • -f "%Sa" : richiede solo i dati di accesso ai file, poiché stat può fornire anche altri dati, come tempi di modifica, tempi di creazione, informazioni sul dispositivo, proprietà e permesso dati, ecc. Vedi man stat se vuoi saperne di più sulle altre funzionalità di stat .

  • -t "%Y-%m-%d %H:%M:%S" : Questo indica a stat quale formato visualizzare la data e l'ora. È possibile modificarlo in base alle proprie esigenze, ma ai fini di questa risposta, I ha scelto un formato standardizzato per l'output di uno dei miei AppleScript: 2018-03-31 16:55:42 .

Tieni presente che il tempo di accesso per un file AppleScript verrà aggiornato, non solo se viene eseguito, ma anche se viene letto, copiato o spostato.

Per utilizzarlo in un AppleScript, puoi racchiuderlo in un do shell script :

    do shell script "stat -f '%Sa' -t '%Y-%m-%d %H:%M:%S' " & ¬
        quoted form of POSIX path of theFileAlias
    
risposta data 31.03.2018 - 18:24
fonte

Leggi altre domande sui tag