Timestamp?

L

lengsel

Aktives Mitglied
Thread Starter
Dabei seit
25.11.2003
Beiträge
4.588
Reaktionspunkte
53
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
 
*nach oben schubs*
 
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
 
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
 
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:
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
 
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
 
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
 
Zurück
Oben Unten