Timestamp?

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von lengsel, 21.11.2004.

  1. lengsel

    lengsel Thread Starter MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    Folgendes Szenario:

    Habe eine Ordneraktion, die neuen Dateien ein farbiges Etikett verpasst.
    Möchte jetzt aber zusätzlich die folgende Funktionalität: Änderung des Etiketts nach x Tagen, evtl. verbunden mit Dialogfeld. Die Vergabe von Etiketten und Dialogfelder aufrufen ist kein Thema. Was ich nicht geschafft habe bis jetzt ist die Zeitdfifferenz auslesen. Ein "stay-open"-Script über 3 Wochen halte ich für unelegant und unpraktikabel, würde mir aber gelingen....
    Jemand eine Idee wie das mit AS zu lösen ist?
    Könnte mir vorstellen einen Cronjob zu haben, der täglich ein Script laufen lässt, das die Timestamps der Dateien in bestimmten Ordnern prüft, und bei Differenz von x Tagen zwischen Timestamp der Datei und heute eben entsprechend Alarm schlägt, und das farbige Etikett ändert.

    Bin dankbar für Ideen und würde das gerne in AS lösen. Geht bestimmt auch wunderbar als Shellscript, aber das kann ich leider nicht.

    Grüße,
    Flo
     
  2. lengsel

    lengsel Thread Starter MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    *nach oben schubs*
     
  3. glzm0

    glzm0 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    ohjeh,

    ich glaube ohne drittanbieter software wird das nicht möglich.

    Aber vielleicht geht es doch, müsstest dann in das Script einbauen das er einen Eintrag im CRON vornimmt per "do shell" commando. Dieses Startet dann nach X tagen wieder das Script oder ein anderes Script zur weiterverarbeitung.

    Aber das wird sicherlich ein wenig kniffelig.


    mfg glzm0
     
  4. lengsel

    lengsel Thread Starter MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    Naja ich dachte mir dass es ja (per Shellscript) möglich sein muss den Timestamp von Dateien (die ein (bestimmtes) farbiges Label haben) eines Ordners auszulesen und mit dem heutigen Tag zu vergleichen. Bei Überschreiten eines Schwellenwertes (Anzahl Tage) wird ein entsprechendes AS aktiviert das die Datei umlabelt und eine Nachricht erscheinen lässt.

    Das Script einmal täglich per Cron aufzurufen ist ja kein Thema.

    Habe eben in AS bis jetzt nicht die Möglichkeit gefunden diesen Zeitvergleich unter den gegebenen Voraussetzungen zu ermitteln. Wahrscheinlich liegt es auf der Hand und ich sehe es nicht...

    Grüße,
    Flo
     
  5. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    MacUser seit:
    24.03.2003
    Hallo Flo,

    was verstehst du denn unter Timestamp?

    Wenn es um das Erstellungsdatum oder das Änderungsdatum geht, ist so ein Vergleich kein Problem.

    Beispiel mit Erstellungsdatum:

    set Heute to current date
    set theFile to choose file
    tell application "Finder"
    ****set theDate to creation date of theFile
    ****
    if theDate < (Heute - (4 * days)) then
    ********set label index of theFile to 2
    ****end if
    end tell


    (Sternchen am Zeilenanfang vor dem Kompilieren im Skripteditor entfernen)

    Willst du das Änderungsdatum abgleichen, schreibe statt 'creation date' einfach 'modification date'.
     
    Zuletzt bearbeitet: 08.12.2004
  6. lengsel

    lengsel Thread Starter MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    Hallo Snow,

    komme gerade von der Arbeit und es ist mir gerade zu spät zum ausprobieren, aber mir scheint dass ist genau das was ich wollte. Check das morgen mal und melde mich dann nochmal. :) :) :)

    Grüße,
    Flo
     
  7. lengsel

    lengsel Thread Starter MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    Tja da muss halt doch erstmal der AS-Chef (Snow!) auftauchen, damit es läuft. Bin immer am auslesen des Parameters creation date gescheitert.
    Stricke da gerade noch ein bisschen drumherum und stelle dann das Gesamtergebnis hier rein. Aber 1000 Dank schon mal! :)

    Grüße,
    Flo
     
  8. lengsel

    lengsel Thread Starter MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    MacUser seit:
    25.11.2003
    So, jetzt habe ich mein Mahnwesen per AS am laufen. Funktioniert folgendermassen:

    Rechnungen sortiere ich in folgender Ordnerstruktur: Kunde/Jahr/gestellt und Kunde/Jahr/bezahlt

    Rechnungen die in gestellt landen werden per Ordneraktion automatisch gelb markiert.
    Ein Cronjob ruft einmal am Tag eine app aus AS auf die den vorgegebenen Ordner kontrolliert, und ggf. die Datei umlabelt nach rot und eine Meldung ausgibt.
    Ich sehe dann nach ob das Geld schon eingegangen ist. Wenn nicht schreibe ich eine Mahnung, falls doch werden die bereits bezahlten Rechnungen in den Ordner bezahlt verschoben. Da hängt ebenfalls eine Ordnerkation dran, die die eingehenden Dateien umlabelt (grün).

    Hier die Scripte:

    check.app:

    ***********************************
    set this_folder to ("Ordner/zu/den/Rechnungen/") as string
    tell application "System Events"
    set these_files to every file of folder this_folder
    end tell
    repeat with i from 1 to the count of these_files
    set theFile to (item i of these_files as alias)
    set this_info to info for theFile
    if visible of this_info is true and alias of this_info is false then
    set Heute to current date
    tell application "Finder"
    set theDate to creation date of theFile
    if theDate < (Heute - (21 * days)) then
    set label index of theFile to 2
    display dialog "Unbezahlte Rechnungen: Kunde" buttons {"OK"} default button 1
    end if
    end tell
    end if
    end repeat
    ***********************************

    Wer andere Präferenzen hat bezüglich der Tage ändert eben den Paramter 21 im Script, ebenso den Hinweistext.

    Ordneraktionen gestellt/bezahlt:

    ***********************************
    on adding folder items to this_folder after receiving these_items
    repeat with n from 1 to number of items in these_items
    set this_item to item n of these_items
    tell application "Finder"
    set label index of this_item to 3/6
    end tell
    end repeat
    end adding folder items to
    ***********************************

    Unterscheiden sich nur durch den Farbwert 3 bzw. 6

    Der Cronjob:

    open /Pfad/zu/check.app

    Startzeit/Intervall nach persönlichen Bedürfnissen.

    Vielen Dank an alle die mir geholfen haben! :)

    Grüße,
    Flo
     
Die Seite wird geladen...

Diese Seite empfehlen