ich benötige Hilfe für ein einfaches Apple Script, da ich leider noch überhaupt keine Ahnung davon habe, die Möglichkeiten aber toll finde.
Ich möchte gerne automatisiert, oder noch besser per Droplet, die Namen von Dateien in das Kommentarfeld des Infofensters kopieren.
Der Hintergrund ist, dass ich in unserem Firmeninternen Workflow alle eingehenden Daten gemäß einer eigenen Dateinamenstruktur katalogisieren muss. Um den Ursprung aber zu erhalten, kopieren wir den Namen in das Kommentarfeld des Infofenster. Bei vielen Dateien ist das jedoch nervig, und es wäre toll diesen Vorgang zu automatisieren, da das ganze umbenennen ohnehin schon aufwand genug ist.
Vielen Dank für die Hilfe!
Jan
(DUAL 1.8 G5, OS 10.3.9)
Dateinamen per Apple Script in Kommentarfeld kopieren
Na dann würd ich es gleich versuchen, richtig zu machen und die Umbenennung gleich mit ins Script zu nehmen, so das z.B. der statische Teil des neuen Namens (Auftragsnummer?) gleich mit vergeben wird und du quasi nur noch den individuellen Teil händisch anzupassen hast. (macht ihr das mit kompletten Layouts? Das stell ich mir ja richtig ätzend vor!) Und wenn ich mir gerade vorstelle, dass so das Logo eines Stammkunden bei euch evtl. hundertfach auf dem Server rumschwirt, wird mir ja ganz schlecht ;-) )
Hi, ich habe in Zwischen drauf gekommen, dass das in den Finder sein soll (Gestern war es etwas zuspät :o) ). Die Script kopieren in Editor einfügen und als Programm sichern. Dieser hier ist Drag&Drop:
Dieser hier kannst Du aus der ScriptEditor aus führen und auf eine Ordner Anwenden:
PS.: Ich habe noch die delimiters aus den Skripten heraus genommen. Ich konnte die nur auf OSX 10.4.4 testen, also kann Dir nicht sagen ob´s auch 10.3.9 läuft :o( Gruß Sándor
Hallo Jan, ich habe noch eine zusatz Text Dialog eingebaut die in allen Dateien, welche gerade abgearbeitet werden, gleich ist. Des weiteren werden die Dateisuffix hiermit abgetrennt.
Hi Thomas, vielenk Dank für Deine Hinweis (ich habe sowas leider noch nicht im Blut :o( ) und für die Shellscript damit wird es etwas kürze + schneller!!
Bei mir läuft es so. Ich habe es mit "1. Advent, ein Lichtlein brennt.jpg" getestet. "1" wäre die Ergebnis mit dem ersten Skript, vor Deine einwand. Hier nehme ich aber die text items 1 bis (gesamt zahl die text items -1) was immer passen sollte oder sehe ich wieder was nicht? Gruß Sándor
Da (d.h. mit zwei Punkten im Dateinamen) funktioniert es so, wie von Dir erwartet. Am Mac sind aber Dateinamen ohne Suffix ebenfalls legitim. Denk Dir also einfach noch das ".jpg" weg und Du hast wieder ein Problem.
Zum try/error Konstrukt: Ja, das würde ich bestehen lassen -- grundsätzlich gehört eh nahezu alles mit solchen Konstrukten ummantelt, wenn man wirklich sauber in AppleScript agieren will. Tipp fürs Testen: Immer einen intelligenten Error-Handler verwenden, also sowas in der Art:
Und um "Droplets" bequem testen zu können, einfach den Run-Handler wie folgt aufbauen:
So wird eben der Open-Handler mit einer Auswahl beworfen und man kann alles bequem im Skript Editor debuggen.
Und finalmente: http://www.latenightsw.com/sd3.0/ Definitiv das Geld wert, wenn man mal in die Verlegenheit kommt, mehr mit AppleScript machen zu müssen.
Hi Thomas, kennst Du eine sauberen Lösung, auf Applescript für dieser Problem?
Heisst, ich hätte bei der Skript mit dem Shell drin, die error Funktion nicht für den Fall verwenden brauchen wo keine Suffix an die Dateien sind, sondern für die Fehlerbehandlung. Mir ist aber noch nicht ganz klar das hier: [Abfang - Routine]. Müsste ich die beiden Variablen nicht vorher irgendwie definieren? Oder ist es eine besondere Form von Händler? Nach dem "If" verstehe ich die "name of me" nicht. Bei einem error Nummer ist der "name of me" immer = "Script Editor"?
Meine Methode war bis jetzt zu Kommentieren. Hierbei muss ich auch noch üben. In dem Fall wenn ich so mache:
wurde die gewählte Ordner kommentiert. Schreib ich statt "folder" "file" kann ich nur eine Datei aus wählen. Mir gefällt aber sehr gut, wie Du auch schreibst, dass so die Events und Ergebnisse protokoliert werden
In der verlegenheit es machen zu müssen, werde ich wohl nicht kommen, aber ich werde mir mal es trotzdem zu legen Möglicherweise kann ich mich damit weiter entwickeln :o) Vielen Dank. Gruß Sándor
Hi Karsten, lange nichts mehr gelesen von Dir :o) So eine "einfacher" Script in so viele versionen Aber haufen gelernt wieder :o) Also hier die richtige Code:
Nein... das relativ steinalte Prinzip der "regular Expressions" ist für solche Arten Stringmanipulationen immer noch verdammt effizient. Und mit Bordmitteln hat AppleScript da nix zu bieten.
Es gibt aber mehr oder weniger brauchbare Scripting Additions für den Zweck, wenngleich wohl nicht mehr alle unter MacOS X laufen (wobei es da auch eher egal ist, da ja MacOS X ein paar vernünftige und ausgewachsene Skriptsprachen mitbringt)
Das "on error"-Konstrukt kennt spezielle Variablen, die man auswerten kann (bspw. um verschiedene bekannte AppleScript-Fehler abzufangen -- ich hatte schon Skripte, die ich gleich zu Anfang in bekannte Fehler gewisser AppleScript-Versionen hab laufen lassen, damit ich dann die richtigen Skriptlibraries für den Rest laden konnte).
Und "me" ist eine Variable, die man benutzen kann, um herauszufinden, wer das Skript ausführt ("Script Editor", wenn es eben darin läuft oder eben der Name des Skripts, wenn es als Programm gespeichert wurde, etc. -- einfach mal ausprobieren). "path to me" kann man dann im Skript benutzen, um herauszufinden, wo der User das Skript hinkopiert hat, "name of me", um herauszubekommen, wie das Skript gerade ausgeführt wird, etc.
zuerst noch einmal vielen Dank für das tolle Script, ich arbeite jetzt schon sehr lange damit und es erleichtert mich oft ungemein!
Ich habe jedoch ein kleines Problem, was allerding nicht unbedingt mit dem Script zusammenhängen muss:
Ich wende das Script auf Dateien an, die anschließend umbenannt werden (so soll der originale Ursprungsname erhalten bleiben...).
Die Dateien liegen auf einem XServe G5, mit OSX Serverversion 10.4. Jetzt ist nur das Problem, dass die Kommentare wieder verschwinden, und somit alles eigentlich umsonst war:(
Weiss jemand, woran das liegen kann? Bin für jede Hilfe dankbar.