[GastForen Programmierung/Entwicklung AppleScript Dateiname ins Clipboard

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Dateiname ins Clipboard

Anonym
Beiträge gesamt: 22827

9. Jun 2005, 00:49
Beitrag # 1 von 5
Bewertung:
(3802 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wie kann ich per AppleScript einen Dateinamen in die Zwischenablage kopieren? Bisher bekomme ich immer den gesamten Pfad:

on open this_item
tell application "Finder"
set the clipboard to this_item as string
end tell
end open
X

Dateiname ins Clipboard

Hans Haesler
  
Beiträge gesamt: 5826

9. Jun 2005, 08:56
Beitrag # 2 von 5
Beitrag ID: #419715
Bewertung:
(3801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hifi,

Du musst dem Finder sagen, dass er den Namen der Datei ausziehen soll:
---
on open this_item
   tell application "Finder" to set the clipboard to (name of file (this_item as string)) as string
end open

---
Die beiden 'as string' sind notwendig. Das erste, damit der Finder den Namen holen kann.
Das zweite, damit das Kopieren in die Zwischenablage gelingt.

Gruss, Hans


als Antwort auf: [#419714]

Dateiname ins Clipboard

Anonym
Beiträge gesamt: 22827

9. Jun 2005, 17:50
Beitrag # 3 von 5
Beitrag ID: #419716
Bewertung:
(3801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Danke für die Hilfe. Aus dem Apfeltalk-Forum habe ich die folgende Lösung bekommen:

on open this_item
  tell application "Finder"
      set theFile to (this_item as string) as alias
      set theName to name of theFile
      set the clipboard to (theName as string)
  end tell
end open


Allerdings kenne ich AppleScript weiterhin zu wenig, um zu erkennen, warum das eine Script so arbeitet und das andere so, beide aber offensichtlich zum gleichen Ergebnis führen...

Genial wäre, wenn das Script den Namen ohne Suffix ins Clipboard kopieren würde!


als Antwort auf: [#419714]

Dateiname ins Clipboard

Hans Haesler
  
Beiträge gesamt: 5826

9. Jun 2005, 21:46
Beitrag # 4 von 5
Beitrag ID: #419717
Bewertung:
(3801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hifi,

nun, beide Scripts machen in etwa dasselbe. Aber das eine macht es etwas direkter. Das heisst,
es macht es zu direkt. Denn 'set the clipboard to' ist kein Befehl des Finders, sondern der
Scripting Addition "StandardAdditions.osax". Man sollte also das Script so schreiben:
---
on open this_item
   tell application "Finder" to set fileName to (name of file (this_item as string))
   set the clipboard to fileName
end open

---
Dabei spielt es keine Rolle, ob 'as string' oder 'as alias' verwendet wird, weil die 'class' von 'this_item'
eine Liste ist, welche zuerst verwandelt werden muss.

Moment mal! Eine Liste?!? Aber was passiert, wenn mehr als ein Objekt auf das Droplet gezogen wird?
Richtig: Es gibt eine Fehlermeldung. Deshalb schnell ein 'item 1 of' eingefügt, damit nur der Name
des ersten Objekts berücksichtigt wird:
---
on open this_item
   tell application "Finder" to set fileName to (name of file (item 1 of this_item as string))
   set the clipboard to fileName as string
end open

---

Man könnte auch ganz auf den (langsamen) Finder verzichten und die Arbeit von der
"StandardAdditions.osax" verrichten lassen:
---
on open this_item
   set the clipboard to (name of (info for of file (item 1 of this_item as string)))
end open

----
Aber je nachdem, in welche Zwischenablage der Name kopiert werden soll, muss man den Befehl
mit einem entsprechenden 'tell'-Block einfassen.

Zitat Genial wäre, wenn das Script den Namen ohne Suffix ins Clipboard kopieren würde!

Warum sagtest Du dies nicht gleich?!? ;-)
---
on open this_item
   set fileInfo to (info for of file (item 1 of this_item as string))
   set {fileName, nameExtension} to {name of fileInfo, name extension of fileInfo}
   if nameExtension is not missing value then
      set the clipboard to (text 1 thru -((count of nameExtension) + 2)) of fileName
   else
      set the clipboard to fileName
   end if
end open

---
Getestet mit Dateien (und Ordnern), deren Extensions null, zwei (z.B. "ps"), drei (z.B. "eps"),
vier (z.B. "indd") und zehn (!) (z.B. "joboptions") Buchstaben aufweisen.

Gruss, Hans


als Antwort auf: [#419714]

Dateiname ins Clipboard

Anonym
Beiträge gesamt: 22827

9. Jun 2005, 23:14
Beitrag # 5 von 5
Beitrag ID: #419718
Bewertung:
(3801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super, tausend Dank! Alles läuft.

Gruss,
Hifi


als Antwort auf: [#419714]
X