Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Eine Datei umbenennen

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alex
•->
•->


Anmeldedatum: 24.10.2001
Beiträge: 3

BeitragVerfasst am: 24.10.2001 - 16:42    Titel: Eine Datei umbenennen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 24.10.2001 - 18:29    Titel: Eine Datei umbenennen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 24.10.2001 - 18:29    Titel: Eine Datei umbenennen Antworten mit Zitat

Uups

Lösung schon da :)

Jens

(Geändert von Jens Hoffmann am 18:30 Uhr am 24 Okt. 2001)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DanB
•-->
•-->


Anmeldedatum: 22.11.2000
Beiträge: 38
Wohnort: Weertzen, Niedersachsen

BeitragVerfasst am: 24.10.2001 - 18:36    Titel: Eine Datei umbenennen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DanB
•-->
•-->


Anmeldedatum: 22.11.2000
Beiträge: 38
Wohnort: Weertzen, Niedersachsen

BeitragVerfasst am: 24.10.2001 - 18:38    Titel: Eine Datei umbenennen Antworten mit Zitat

Okay, lasst mich Jens zitieren: "Uups, Lösung schon da" Smile
_________________
danB
[url]mailto:danB@advancedscripting.de[/url]
http://www.advancedscripting.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
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


AppleScript für absolute Starter