1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

AppleScript und Dateien kopieren *grrr*

Dieses Thema im Forum "AppleScript" wurde erstellt von Mini-Leopard, 30.06.08.

  1. Mini-Leopard

    Mini-Leopard Rhode Island Greening

    Dabei seit:
    20.03.08
    Beiträge:
    476
    Halli-Hallo!

    Folgendes:
    Ich möchte gerne Dateien umbenennen und dann in ein anderes Verzeichnis kopieren.
    Und so hab Ich es gemacht:

    Code:
    tell application "System Events"
    	set Datum to current date
    	set y to year of Datum as number as string
    	set m to month of Datum as number as string
    	set d to day of Datum as number as string
    	set ISODatum to " " & y & "-" & m & "-" & d as text
    	----------------------------------------------------------------------------
    	set DateiName to "iTunes Library" & ISODatum
    	set name of file "/Users/NUTZERNAME/Music/iTunes/iTunes Library" to DateiName
    	set Datei to "/Users/NUTZERNAME/Music/iTunes/" & DateiName
    	set Pfad to "/Users/NUTZERNAME/Music/iTunes/iTunes Library" & ISODatum
    	move file Pfad to "/Users/NUTZERNAME/Music/iTunes/Previous iTunes Libraries/"
    	----------------------------------------------------------------------------
    	set DateiName to "Temp File" & ISODatum & ".tmp"
    	set name of file "/Users/NUTZERNAME/Music/iTunes/Temp File.tmp" to DateiName
    	set Datei to "/Users/NUTZERNAME/Music/iTunes/" & DateiName
    	set Pfad to "/Users/NUTZERNAME/Music/iTunes/iTunes Library" & ISODatum & ".tmp"
    	move file Pfad to "/Users/NUTZERNAME/Music/iTunes/Previous iTunes Libraries/"
    	----------------------------------------------------------------------------
    	set DateiName to "iTunes Music Library" & ISODatum & ".xml"
    	set name of file "/Users/NUTZERNAME/Music/iTunes/iTunes Music Library.xml" to DateiName
    	set Datei to "/Users/NUTZERNAME/Music/iTunes/" & DateiName
    	set Pfad to "/Users/NUTZERNAME/Music/iTunes/iTunes Library" & ISODatum & ".xml"
    	move file Pfad to "/Users/NUTZERNAME/Music/iTunes/Previous iTunes Libraries/"
    	
    end tell
    Und es funktioniert nicht! AppleScript sagt mir:
    „System Events“ hat einen Fehler erhalten: „file "/Users/NUTZERNAME/Music/iTunes/iTunes Library 2008-6-30.tmp"“ kann nicht gelesen werden.

    Das komische ist jetzt, dass es bei der ersten Datei einwandfrei funktioniert und bei
    iTunes Library 2008-6-30.tmp nicht. o_O


    Kann mir einer helfen?
    Ich bin hier echt schon am verzweifeln, weil Ich nicht weiß, wieso und warum das ganze Ding nicht funktioniert. Ich verstehe es einfach nicht, weil in der Fehlermeldung ja exakt der Dateiname angezeigt wird. Und wenn Ich im Finder die Datei anschaue, stimmt alles überein.
    Und wenn Ich den Namen komplett manuell angebe, funktioniert es auch.
    Nur (leider) hat man jeden Tag ein anderes Datum :)



    Ich danke schonmal für jede Hilfe.
    MfG
    Mini-Leo​
     
  2. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    auf den ersten (flüchtigen) Blick liegt der erste Haken in dieser Zeile:
    Code:
    set name of file "/Users/NUTZERNAME/Music/iTunes/Temp File.tmp" to DateiName
    
    Existiert das .tmp-file denn, dass du da umbenennen willst?

    Ausserdem: im ersten Block sind die Variablen Datei und Pfad identisch, was ja nicht besonders sinnvoll ist. Im zweiten ist das nicht so. (gewollt oder nicht?) Es schaut ja so aus, als wolltest Du immer das gleiche Konstrukt benutzen, scheinst es aber nicht konsequent durchzuhalten, was aber auch damit zusammenhängen mag, dass es zu kompliziert ist.
    Wie wäre es denn, wenn Du den Pfad zur iTunes-Library in eine Variable schreiben würdest. Das würde das Script schon mal um einiges kürzen:
    z.B. so: set iTPath to POSIX path of ((path to music folder) & "iTunes:" as text)
     
  3. Mini-Leopard

    Mini-Leopard Rhode Island Greening

    Dabei seit:
    20.03.08
    Beiträge:
    476
    Die Änderung im Code ist volgender Maßen zu erklären:

    Die Datien müssen die Endungen ".xml" und ".tmp" haben, damit mal sie verarbeiten kann.
    Wenn Du Dir den Code ansiehst, mache Ich das gleiche, wie oben nur eben '&.xml' das ändert ja an sich nichts.
    Deine Idee ist nicht übel.
    Dient doch aber eher der Übersicht. Oder?!


    Lieber Gruß
    Mini-Leo
     
  4. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Eben nicht so ganz (wie bereits erklärt). Beim Umbenennen frage ich mich, wo die tmp Datei herkommt? Und da du ohnehin mit POSIX-Pfaden arbeitest, kannst Du ja auch die shell einspannen, aber dann solltest Du die Pfade unbedingt "quoten" und dir den auszuführenden shell-Befehl besser vorher ausgeben lassen, bevor Du scharf schiesst. Auch ein gute Gelegenheit, dein Konzept nochmals zu überprüfen.

    Nicht nur. Das erspart Dir zunächst viel "Vertipp-Arbeit" und ist zudem ein relativer Pfad. Dieser funktioniert dann auch noch auf dem nächsten Rechner bzw. unter einem anderen User. Aber "Übersicht" an sich ist in einem Script auch nicht unbedingt schädlich ;)
     

Diese Seite empfehlen