Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
alex •->

Anmeldedatum: 24.10.2001 Beiträge: 3
|
Verfasst am: 24.10.2001 - 16:42 Titel: Eine Datei umbenennen |
|
|
Hallo,
ich versuche mit folgendem Code jede Datei, die auf ein Droplett geworfen wird, mit einem Prefix zu versehen. Nun ich bekomme immer die Fehermeldung can`t set name of alias ....
wo ist (sind) meine Fehler
on open doc
tell application "Finder"
activate
copy doc as string to nam
copy text (((length of nam) + 2) - ((offset of ":" in (reverse of characters of nam) as string))) thru (length of nam) of nam to fileName
copy text 1 thru ((length of nam) - ((offset of ":" in (reverse of characters of nam) as string)) + 1) of nam to filePath
set neu_nam to myip & fileName as string
set neu_path to filePath & neu_nam as string
set the name of doc to neu_path
end tell
end open |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 24.10.2001 - 18:29 Titel: Eine Datei umbenennen |
|
|
Hallo,
ich wollte nicht erst Dein Script Zeile für Zeile analysieren und kommentieren - habe einfach eine eigene Version verfasst:
[font=geneva]property the_map : { {theArt:"TEXT", theext:".txt" }, {theArt:"JPEG", theext:".jpg" } }
on [color=red]open the_items
-- 1 item oder mehrere?
if class of the_items != list then set the_items to {the_items}
--loop durch die items
repeat with i in the_items
--holen wir uns erstmal infos für die items
set temp to info for contents of i
--Ordner und alias-Dateien verschmähen wir in diesem Beispiel
if not (folder of temp) and not (alias of temp) then
-- siehe property the_map
set the_Extend to get_Extension(file type of temp)
if not (the_Extend = "") then
-- die Datei ist in den Vorgaben enthalten!
-- neuen Name bilden
copy name of temp & the_Extend to new_name
-- Länge des Namens???
if length of new_name > 31 then
-- Namen mit mehr als 31 zeichen müssen gekürzt werden!
set new_name to (text items 1 thru 20 of new_name & "Ö" & text items -10 thru -1 of new_name) as string
end if
re_name(new_name, contents of i)
end if
end if
end repeat
end open
on get_Extension(the_type)
repeat with i in the_map
if the_type = theArt of contents of i then return theext of contents of i
end repeat
return ""
end get_Extension
on re_name(new_name, the_file)
tell application "Finder"
set name of the_file to new_name
end tell
end re_name[/color][/font]
Ich glaube, Du wirst sehen wo es Probleme gegeben hat. Außerdem ging es bei Dir um Prefix. Aber das Anpassen sollte kein problem mehr sein oder?
Gruß,
Folker
PS: "!=" steht für ungleich (Tasten "Option" + "=") _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 24.10.2001 - 18:29 Titel: Eine Datei umbenennen |
|
|
Uups
Lösung schon da :)
Jens
(Geändert von Jens Hoffmann am 18:30 Uhr am 24 Okt. 2001) |
|
Nach oben |
|
 |
DanB •-->


Anmeldedatum: 22.11.2000 Beiträge: 38 Wohnort: Weertzen, Niedersachsen
|
Verfasst am: 24.10.2001 - 18:36 Titel: Eine Datei umbenennen |
|
|
Nun, hier erstmal zwei Fehler, die noch gar nichts mit dem eigentlichen Problem zu tun haben:
a) In der Variablen hinter "on open" wird immer eine Liste mit Verweisen zu allen auf das Droplet gezogenen Dateien gespeichert. Das heisst, man sollte eine repeat-Schleife einbauen, die alle Dateien nacheinander abarbeitet. Deine Variante "copy doc as string to nam " führt zu Problemen, sobald man mehrere Dateien auf das Droplet zieht.
b) Warum hast Du das Skript nicht so gestaltet, dass es erst den Namen der zu bearbeitenden Datei ausliest, diesen verändert und dann die Datei umbenennt? Das spart dir die fast sämtliche Textoperationen. Mein Vorschlag sieht so aus:
on open filelist
repeat with doc in filelist
tell application "Finder"
activate
set doc to (doc as string)
set fileName to (name of file doc)
set neu_nam to myip & fileName as string
set the name of file doc to neu_nam
end tell
end repeat
end open
Das "alias" Problem in Deinem Skript besteht darin, dass dem Finder explizit gesagt werden muss, dass er einen Dateipfad im Format "Volume:Folder:File" als Datei behandeln soll. Mit "copy doc as string to nam" hast du indirekt ein AppleScript-internes Alias erzeugt, dass der Finder dann natürlich nicht umbenennen kann (Can't set name of alias...). _________________ danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de |
|
Nach oben |
|
 |
DanB •-->


Anmeldedatum: 22.11.2000 Beiträge: 38 Wohnort: Weertzen, Niedersachsen
|
Verfasst am: 24.10.2001 - 18:38 Titel: Eine Datei umbenennen |
|
|
Okay, lasst mich Jens zitieren: "Uups, Lösung schon da"  _________________ danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|