AppleScript - Auf NTFS Platte Daten kopieren und Dateiname klein schreiben?

ObiTobi

Aktives Mitglied
Thread Starter
Dabei seit
05.11.2009
Beiträge
1.536
Reaktionspunkte
91
Hallo,

ich verwende seit Jahren eigenes Skript welches zum Großenteils hier im Forum entstanden ist.
Es funktioniert auch alles super, so lange die Zielplatte eine HFS+ Platte ist. Aus bestimmten Gründen muss ich auf NTFS umsteigen (Zugriff von Windows). Als sich funktioniert mein Skript auch damit.
Bis allerdings die Tatsache, dass die Dateien alle wie im Original in Großbuchstaben geschrieben werden.
Hier der Teil welches das Kopieren mit Wandlung in Kleinbuchstaben und anschließenden Löschen.

Code:
tell application "Finder"
        set fileName to do shell script "echo " & fileName & " | awk -F: '{print $4}' | tr '[:upper:]' '[:lower:]'"
        set name of (duplicate sourceDir & fileName to backupDir as alias) to fileName
        set name of (duplicate sourceDir & fileName to destinationDir as alias) to fileName
        do shell script "chmod 644 " & quoted form of POSIX path of (destinationDir & ":" & fileName)
        set baseFileName to (characters 1 thru -4 of (fileName))
        do shell script "cp -av ~/Pictures/baseXMP.xmp " & quoted form of POSIX path of (destinationDir & ":" & baseFileName & "xmp")
        delete file (sourceDir & fileName) as alias
    end tell


Idee wie man es doch hinkriegt, dass es mit NTFS funktioniert?
 
kannst du anhand von beispielen formulieren, was du möchtest und was nicht klappt?
 
Hmm, ich dachte es wäre deutlich genug aber OK, daran soll es nicht scheitern.

Die Kamera schreibt die Bilder auf CF-Karte. Die ist wie oft mit FAT Formatiert, also 8.3 und dazu alle Dateinamen in Großbuchstaben. Wenn ich etwas bei Computern jasse, dann sind es Dateien und Verzeichnisse die nur in Großbuchstaben vorliegen.
Wenn die Bilder also von der CF-Karte auf Platte kopiert werden, werden die auch alle Dateiname in Kleinbuchstaben geschrieben.

Aus _RR_6822.CR2 wird _rr_6822.cr2

Das funktioniert mit dem Script ohne Probleme (das oben ist nur der Teil der für diesen Part zuständig ist). So bald die Platte aber nicht HFS+ sondern NTFS formatiert ist funktioniert es nicht mehr. Die Dateinamen sind wie auf der CF-Karte also alle in Großbuchstaben.
Ich hätte aber gerne, dass es unabhängig vom FS funktioniert. Im Moment starte ich für den Import immer eine Windows VM und importiere die Bilder mit einem Powershell Script. Ist halt sehr umständlich ;(

Tobi
 
nee, dein codefragment verwirrt nur mehr (du verwendest z.b. : statt / in posix path).

meine vermutung:
1. du änderst den dateinamen nicht wirklich (duplicate), machst nur :lower:.
versuch' mal testweise :lower: + {filename.ext}.tmp und anschliessend .tmp vom dateinamen wieder entfernen.
aber nicht nur in variablen, sondern jeweils mit mv richtig auf die hfs+-platte wegschreiben.

ich gehe bei dir vom leider verbreiteten case insensitive hfs+ aus, von dem du kopierst.
---
2. du nimmst kopierbefehle wie cp oder mv mit zieldateinamen.
letztenendes könntest du dann die beiden verbleibenden as-befehle auch noch als shell code umbauen.
 
Zuletzt bearbeitet:
Nein nicht ganz.

Hier der alte Thread mit dem glaube ich kompletten Skript
Ich kopiere die Dateien immer von einem FAT Volume (CF-Karte). Ziel ist HFS+ Platte (funktioniert alles super) oder NTFS Platte (Dateinamen sind alle in Großbuchstaben)

Ich verwende Duplikate weil ich die Dateien erst ins Backup (SparseBundle), dann auf die Zielplatte kopiere. Dann wird noch eine *.xmp Datei dazukopiert und erst dann wird die org. Datei gelöscht.
 
chr, da habe ich ja auch schon mitgewirkt.
wie gesagt, probier's mit cp und mv, statt duplicate, aus.
 
Ich glaube so weit habe ich es doch mit "cp" hinbekommen.
Morgen werde ich es genau testen ob es damit wie ich es jetzt habe sowohl bei HFS+ und NTFS Platten funktioniert. Nicht dass durch meine Änderung ich mir die HFS+ Variante kaputt gemacht habe.
 
Zuletzt bearbeitet:
Zurück
Oben Unten