Korrektur von massenweise Datumsangaben im Batch

JochenN

Aktives Mitglied
Thread Starter
Dabei seit
05.12.2002
Beiträge
1.492
Reaktionspunkte
64
Hallo,
ich habe das Problem, dass Datumsangaben von BoxCryptor nach dem Upgrade auf Ventura falsch gesetzt sind. Fast alle Files haben ein Datum 12.04.2262, warum auch immer.

Ich habe aber die korrekten Datum-/Zeitstempel verfügbar, wenn ich das Cloud-Directory mit CloudMounter ansehe. Was ich jetzt machen möchte: Ein (AppleScript-)Skript schreiben, das mir rekursiv von allen Files die korrekten Datumsangaben vom CloudMounter holt und mit 'touch' die lokalen Dateien korrigiert.

Was ich bereits herausgefunden habe (bin kein UNIX-Spezialist und würde das Skript auch eher mit AppleSkript als mit der Shell schreiben; AppleScript kann ich ganz gut, Shell weniger; ich würde viel mit "do shell script" arbeiten):
  • touch -t 201010161000 <filepath> -- ändert das Datum in den 16.10.2010 10:00 Uhr
Ich bräuchte also eine Shell-Funktion (die in der Apple-Version der Shell unter Ventura verfügbar ist), die mir rekursiv durch einen Directory-Tree durchläuft und für alle Files ausgibt: den kompletten Pfadnamen und den Modify-Timestamp in dem Format, das von dem touch-Command benötigt wird: YYYYMMTTHHMM.

Dazu erhoffe ich mir hier von euch Spezialisten ein paar Hinweise. Herzlichen Dank!
 
Bin selbst kein Experte (lerne noch). Die Frage interessierte mich aber und das habe ich gefunden:

Dieses clevere AppleScript spuckt dir direkt im Skripteditor eine lange Liste von Filenamen mit Path aus.
Rekursiv mit vielen Files kann dauern.
https://www.jonn8.com/html/scripts/misc/List_Folder_Contents.html

Das kannst du bisschen umbauen und damit direkt dein Shell-Skript erzeugen.
Das Datum bekommst du so und kannst es mit ausgeben:
Code:
set {year:yr, month:mn, day:dy} to modification date of new_file
set date to ¬
    (yr as string) & ¬
    (text -2 thru -1 of ("00" & (mn as integer))) & ¬
    (text -2 thru -1 of ("00" & (dy as integer)))

Uhrzeit ist ähnlich, aber bisschen fummeliger. Doku dazu https://developer.apple.com/library...#//apple_ref/doc/uid/TP40000983-CH1g-BBCGECID

Das Ganze noch mit "touch -t " garnieren und dein Shell-Skript über alle Files ist fertig
 
Vielen Dank, ich werde mir beides mal ansehen. Weitere Kommentare natürlich willkommen!
Viele Grüße Jochen
 
Zurück
Oben Unten