[GastForen Programmierung/Entwicklung AppleScript via applescript aktuelle zeit+datum in den dateinamen fügen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

via applescript aktuelle zeit+datum in den dateinamen fügen

Gast
Beiträge gesamt:

19. Aug 2004, 13:34
Beitrag # 1 von 3
Bewertung:
(7661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!
wie füge ich via apple script die aktuelle zeit und das datum in einen dateinamen?
ich nehme radiosendungen via skript (sound studio + alarm clock pro) auf und wünsche, daß dann im dateinamen das erstellungsdatum integriert wäre als unverwechselbaren stempel um fehlermeldungen wegen doppelter dateinamen zu vermeiden...
könnte mir jemand mit einer problemlösung dienen?
vielen dank, frank.
X

via applescript aktuelle zeit+datum in den dateinamen fügen

Hans Haesler
  
Beiträge gesamt: 5826

19. Aug 2004, 13:52
Beitrag # 2 von 3
Beitrag ID: #418965
Bewertung:
(7656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Frank,

wie sieht ein typischer Dateiname aus? Und wie sollen Datum und Zeit formatiert sein?
Wenn Du mir ein Beispiel gibst, wie Du Dir den Namen vorstellst, dann werde ich Dir
die Formel dafür mitteilen.

Welche Mac-OS-Version benutzt Du?

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418964]

via applescript aktuelle zeit+datum in den dateinamen fügen

Hans Haesler
  
Beiträge gesamt: 5826

20. Aug 2004, 10:09
Beitrag # 3 von 3
Beitrag ID: #418966
Bewertung:
(7656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier schon mal etwas Theorie zum Thema "Datum und Zeit".

Das aktuelle Datum samt Zeit in eine Variable zu bekommen ist einfach:
Code
set curDate to (current date) 

Das Ergebnis -->date "Freitag, 20. August 2004 7:37:30 Uhr" ist keine Textkette (string), sondern im Format 'date'. Wenn man das Datum, so wie es ist, irgendwo einsetzen will, dann kann man dem Befehl den Zusatz 'as string' anhängen und hat dann eine Textkette: "Freitag, 20. August 2004 7:37:30 Uhr".

Wenn aber das Resultat verändert (Name des Wochentages weglassen, Kurzform = 20.08.04) oder/und wenn die Uhrzeit in einen Dateinamen aufgenommen werden soll, dann ist es einfacher, die Infos aus dem 'date' auszuziehen.

Angenommen, dieses Beispieldatum soll ins Format "_040820_073730" umgewandelt werden (Jahr, Monat, Tag, damit es mit dem Sortieren klappt).

Die einzelnen Bestandteile werden aus der Variablen 'curDate' ausgezogen:
Code
set yy to year of curDate -->2004 

Damit nur die zwei letzten Stellen in die Variable 'yy' gegeben werden, verlangt man den 'text -2' (= zweitletzter Buchstabe) bis '-1' (= letzter Buchstabe) des Jahres von 'curDate'. Weil das Jahr im Format 'integer' (= Ganzzahl) ist, muss es für diese Operation in einen 'string' (= Textkette) umgewandelt werden. Man kann wieder 'as string' einsetzen. Oder die kürzere Form anwenden, mit welcher 'year of current date' mit dem Zeichen '&' an einen leeren String gehängt und so automatisch ins selbe Format konvertiert wird:
Code
set yy to text -2 thru -1 of ("" & (year of curDate)) -->04 

Der Monat ist eine besondere Knacknuss.
Code
set mm to month of curDate -->August 

Das Resultat ist keine Textkette (die Anführungszeichen fehlen), sondern eine englische Konstante (April, August, September  und November sind die Namen, welche in deutsch und englisch übereinstimmen). Um die Nummer des Monats herauszukriegen, könnte man einen Test aufstellen:
---
if mm = January then
  set mm to "01"
else if mm = February then
  set mm to "02"
else if mm = March then
  set mm to "03"
usw. usf.
Code
Es gibt aber eine kürzere Formel, welche nicht so einfach zu verstehen ist: 

copy curDate to tempDate
set month of tempDate to January
set mm to text -2 thru -1 of ("0" & ((curDate - tempDate) div 2500000) + 1) -->"08"
---
Zuerst wird 'curDate' in eine zweite Variable kopiert. Hier ist das 'copy' zwingend. Weil nach einem 'set' mit dem Befehl der zweiten Zeile auch der Inhalt von 'curDate' verändert würde. Den Beginn der dritten Zeile haben wir schon beim Jahr kennengelernt. Hier wird aber das Resultat nicht an einen leeren String angehängt, sondern an "0". Damit wird bei einstelligen Werten eine Null eingefügt. Das Resultat aus '(curDate - tempDate)' ist die Anzahl Sekunden zwischen dem heutigen Tag und dem gleichen des Monats Januar. Dieses Ergebnis wird mit 'div' durch 2500000 geteilt (man kann eine beliebige Zahl zwischen 2419200 und 2505600 verwenden). Man erhält eine Ganzzahl, welche um 1 kleiner ist, als die richtige Lösung. Deshalb muss am Schluss '+ 1' stehen.

Unter Mac OS X ist dies alles viel einfacher, denn die Nummer kann direkt verlangt werden.
Code
set mm to text -2 thru -1 of ("0" & (month of curDate as number)) -->"08" 

Das Ausziehen des Tages ist leicht:
Code
set dd to text -2 thru -1 of ("0" & (day of curDate)) -->"20" 

Hier wird die vorangestellte Null nicht gebraucht. Aber mit Werten unter 10 wird sie eingefügt.

Die Uhrzeit kann mit 'time string of curDate' ausgezogen werden.
Code
set ts to time string of curDate -->"7:37:30 Uhr" 

Drei Probleme:
1) Bei Werten von 0 bis 9 muss eine führende Null eingefügt werden.
2) Die Doppelpunkte dürfen nicht in einem Dateinamen verwendet werden.
3) Der (läppische) Zusatz " Uhr" muss weg.
---
set c to offset of ":" in ts
set h to text -2 thru -1 of ("0" & (text 1 thru (c - 1) of ts))
set m to text (c + 1) thru (c + 2) of ts
set s to text (c + 4) thru (c + 5) of ts
---
Zuerst wird in die Variable 'c' die Position des ersten ':' gesetzt. Dann wird dieser Wert benutzt, um den Variablen 'h', 'm' und 's' die entsprechenden Werte zuzuweisen.

Hier das ganze Mac-OS-9-Script auf einen Blick:
---
set curDate to (current date)

copy curDate to tempDate
set month of tempDate to January

set yy to text -2 thru -1 of ("" & (year of curDate))
set mm to text -2 thru -1 of ("0" & ((curDate - tempDate) div 2500000) + 1)
set dd to text -2 thru -1 of ("0" & (day of curDate))
set ts to time string of curDate
set c to offset of ":" in ts
set h to text -2 thru -1 of ("0" & (text 1 thru (c - 1) of ts))
set m to text (c + 1) thru (c + 2) of ts
set s to text (c + 4) thru (c + 5) of ts
set finalDate to ("_" & yy & mm & dd & "_" & h & m & s) -->"_040820_073730"
---

Das Ergebnis zählt immerhin 14 Zeichen. Dies ist eventuell zu viel, um an einen Dateinamen angefügt zu werden. Eine Variante wäre, die Sekunden, welche ab einem fixen Datum bis jetzt verstrichen sind, zu benutzen.
---
set fixDate to date "Donnerstag, 1. Januar 2004 0:00:00 Uhr"
set curDate to current date
set nSecs to "_" & (curDate - fixDate) -->"_20072250"
---
Nur noch neun Zeichen. Und ebenfalls ein unverwechselbarer Stempel. Nun &#133; so in drei Jahren müsste man sich die Sache nochmals vornehmen...

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418964]

Aktuell

PDF / Print
enfocus_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!