• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Frühling ist auch in den eingesandten Fotos deutlich zu erkennen. Zeigt uns, wer Euer Favorit ist! hier geht es lang für Euer Voting --> Klick

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 ;)
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
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:

Fraqq

Idared
Registriert
17.06.12
Beiträge
28
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?
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Mein Fehler, theFile ist kein String, sondern sollte als alias gespeichert werden. Ich habs oben korrigiert.
 

Fraqq

Idared
Registriert
17.06.12
Beiträge
28
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:

Fraqq

Idared
Registriert
17.06.12
Beiträge
28
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]