• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Bestimmte Datei umbenennen

Fraqq

Idared
Registriert
17.06.12
Beiträge
28
Hey Leute.
Kann mir jemand helfen? Ich habe leider keine Ahnung von der Materie :)

Ich versuche folgendens:
Eine Datei umbenennen mithilfe von Applescript und zwar so:

Wenn die Datei den Namen XY hat, soll sie in XYZ umbenannt werden und wenn sie den Namen XYZ hat, soll sie in XY umbenannt werden.
Ich bin bis jetzt nur so weit, dass ich 2 verschiedene Scripts habe, die diese Aufgabe jeweils seperat erledigen.
Doch wie kann ich dies in ein Script zusammenfügen? Also mit "if xxx then xxx" oder wie man das macht.

Wäre cool wenn mir das jemand machen könnte, ist sicher nur ein klacks für jemand der weiß wie :)

Aso hier die Scripts:
Nr 1
Code:
[B]tell[/B] [COLOR=#0433FF][I]application[/I][/COLOR] "Finder"[COLOR=#0433FF][COLOR=#000000]    
[/COLOR][B]     activate[/B][/COLOR]
    [B]set[/B] [COLOR=#4f8f00]workpath[/COLOR] [B]to[/B] "Macintosh HD/Applications/Adobe/Adobe Photoshop CS6/Locales/de_DE/Support Files"
    [B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#0433ff][I]document file[/I][/COLOR] "tw10428_old.dat" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Support Files" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "de_DE" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Locales" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Adobe Photoshop CS6" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Adobe" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Applications" [B]of[/B] [COLOR=#812fdc]startup disk[/COLOR] [B]to[/B] "tw10428.dat"
[B]end[/B] [B]tell[/B]

Nr 2
Code:
[B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "Finder"
[COLOR=#0433FF][COLOR=#000000]    [/COLOR][B]activate[/B][/COLOR]
    [B]set[/B] [COLOR=#4f8f00]workpath[/COLOR] [B]to[/B] "Macintosh HD/Applications/Adobe/Adobe Photoshop CS6/Locales/de_DE/Support Files"
    [B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#0433ff][I]document file[/I][/COLOR] "tw10428.dat" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Support Files" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "de_DE" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Locales" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Adobe Photoshop CS6" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Adobe" [B]of[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "Applications" [B]of[/B] [COLOR=#812fdc]startup disk[/COLOR] [B]to[/B] "tw10428_old.dat"
[B]end[/B] [B]tell[/B]

Vielen Dank ;)
 
Hallo,

Erst einmal ein paar Verbesserungsvorschläge für dein Skript:

Das activate kannst du weglassen, das Skript wird dann im Hintergrund ausgeführt. Dann legst du die Variable
workpath​
an, ohne sie später zu benutzen. Wenn du sie anlegst, solltest du sie also auch benutzen. Dabei wirst du feststellen, dass der Dateipfad erst in das richtige Format umgewandelt werden muss. Es ist also besser, den Pfad gleich in einem AppleScript-verständlichem Format anzugeben. Wie das geht, siehst in meinem Beispiel unten.

Deine Idee mit if war absolut richtig. Der Syntax geht folgendermaßen:

Code:
if [Bedingung1] then
     [Anweisung1]
else if [Bedingung2] then 
     [Anweisung2]
else
     [Anweisung3]
end if

Die Bedingung ist in unserem Fall der Name der Datei. Da der Name nicht bekannt ist, müssen wir den erst herausfinden. Dazu fragen wir einfach den Namen jeder Datei in dem Ordner ab, deren Name ".dat" enthält und speichern das Ergebnis als Alias in der Variable theFile.

So sieht das dann aus:

Code:
[B]tell[/B] [COLOR=#0433FF][I]application[/I][/COLOR] "Finder"
[COLOR=#5E6161][B]set[/B] [COLOR=#4F8F00]theFile[/COLOR] [B]to[/B] ([B]every[/B] [COLOR=#0433FF][I]file[/I][/COLOR] [B]of[/B] [COLOR=#0433FF][I]alias[/I][/COLOR] ":Applications:Adobe:Adobe Photoshop CS6:Locales:de_DE:Support Files:" [B]whose[/B] [COLOR=#812FDC]name[/COLOR] [B]contains[/B] ".dat") [B]as[/B] [COLOR=#0433FF][I]alias[/I][/COLOR][/COLOR]
    [B]if[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]is[/B] "tw10428_old.dat" [B]then[/B]
        [B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]to[/B] "tw10428.dat"
    [B]else[/B] [B]if[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]is[/B] "tw10428.dat" [B]then[/B]
        [B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]to[/B] "tw10428_old.dat"
    [B]end[/B] [B]if[/B]
[B]end[/B] [B]tell[/B]
 
Zuletzt bearbeitet:
Danke, sieht schon mal gut aus und von Prinzip her auch gar nicht so schwierig.
Leider bekomme ich aus irgendeinem Grund folgenden Fehler:

„name of "Macintosh HD:Applications:Adobe:Adobe Photoshop CS6:Locales:de_DE:Support Files:tw10428.dat"“ kann nicht gelesen werden.

Mit meiner verkorksten Version kann er die Datei lesen.
Lese & Schreibrechte habe ich für die Datei auch.

Weißt du was da los ist?
 
Mein Fehler, theFile ist kein String, sondern sollte als alias gespeichert werden. Ich habs oben korrigiert.
 
Cool, jetzt funktioniert es. Vielen Dank :)
Vielleicht sollte ich das doch mal lernen, macht irgendwie Spaß ;)

Jetzt noch was :)
Kann man dann sich auch kurz ein passendes Textfester dazu anzeigen lassen?
Also wenn die Datei von "tw10428.dat" nach "tw10428_old.dat" umbenannt wurde, das dann ein kleines Popup kommt mit dem Text: "Erfolgreich von Deutsch auf Englisch umgestellt" oder so ähnlich?

OK habs schon selbst gefunden :)
Einfach "display dialog "xy"" nach dem "if"

Danke nochmal
 
Zuletzt bearbeitet:
So, ich hab es noch mal ein wenig modifiziert, mit Buttons usw.
Ist fast einfacher :)

Code:
[B]tell[/B] [COLOR=#0433FF][I]application[/I][/COLOR] "Finder"	[B]set[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]to[/B] ([B]every[/B] [COLOR=#0433ff][I]file[/I][/COLOR] [B]of[/B] [COLOR=#0433ff][I]alias[/I][/COLOR] ":Applications:Adobe:Adobe Photoshop CS6:Locales:de_DE:Support Files:" [B]whose[/B] [COLOR=#812fdc]name[/COLOR] [B]contains[/B] ".dat") [B]as[/B] [COLOR=#0433ff][I]alias[/I][/COLOR]
	[COLOR=#012fbe][B]display dialog[/B][/COLOR] "Photoshop Sprache ändern" [COLOR=#012fbe]buttons[/COLOR] {"Abbrechen", "Englisch", "Deutsch"}
	[B]if[/B] [COLOR=#5730be]button returned[/COLOR] [B]of[/B] [COLOR=#812fdc]result[/COLOR] = "Englisch" [B]then[/B]
		[B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]to[/B] "tw10428_old.dat"
		[COLOR=#012fbe][B]display dialog[/B][/COLOR] "Sprache wurde erfolgreich auf Englisch eingestellt" [COLOR=#012fbe]buttons[/COLOR] {" OK "}
	[B]else[/B] [B]if[/B] [COLOR=#5730be]button returned[/COLOR] [B]of[/B] [COLOR=#812fdc]result[/COLOR] = "Deutsch" [B]then[/B]
		[B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]theFile[/COLOR] [B]to[/B] "tw10428.dat"
		[COLOR=#012fbe][B]display dialog[/B][/COLOR] "Sprache wurde erfolgreich auf Deutsch eingestellt" [COLOR=#012fbe]buttons[/COLOR] {" OK "}
	[B]end[/B] [B]if[/B]
[B]end[/B] [B]tell[/B]