• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

AppleScript und Dateien kopieren *grrr*

Mini-Leopard

Rhode Island Greening
Registriert
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​
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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)
 

Mini-Leopard

Rhode Island Greening
Registriert
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
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
24.02.07
Beiträge
253
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'...
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.

Deine Idee ist nicht übel.
Dient doch aber eher der Übersicht. Oder?!
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 ;)