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


Anmeldedatum: 16.09.2001 Beiträge: 64 Wohnort: Ostwestfalen
|
Verfasst am: 17.09.2001 - 21:56 Titel: Mein erstes Skript! Hat eine Macke... - Liegt an meiner Befe |
|
|
Hier also das Script. Es erstellt zunächst einen Ordner namens "Backup Archiv" auf dem Desktop, erzeugt dann in diesem Unterordner, die die Namen jener Dateien tragen, die auf das Script gezogen wurden. In einem weiteren Schritt werden die auf das Script gezogenen Dateien in die jeweiligen Unterordner verschoben. Das funktioniert auch perfekt, ich bin selbst erstaunt von meinen Fähigkeiten (nach 2 Tagen *g*)
Doch die zweite Geschichte will nicht so recht laufen. Da nämlich vorzugsweise *.sit-Dateien auf das Skript gezogen werden, möchte ich, daß die erzeugten Unterordner keinen *.sit-Suffix im Namen haben.
Das Hinzufügen eines Suffix würde ja mit dem "&"-Befehl vonstatten gehen, aber wie ziehe ich Zeichen von Namen wieder ab? Ich habe da, wie man sieht, das Minus-Zeichen verwendet, das funktioniert aber nicht (war auch nur ein Versuch).
Wer kann helfen?
BTW: Das Scripter-Magazin ist absolut klasse, wenn ich darf, würde ich gerne auf meiner Homepage einen Link zu Eurer Seite einfügen. AppleScript macht so viel Spaß, das sollten auch andere MacUser lernen :-)
on open dieDateiliste
tell application "Finder"
activate
make new folder at desktop
try
set name of the result to "Backup Archiv"
end try
repeat with dieDatei in dieDateiliste
get name of dieDatei
set neuOrdnername to the name of dieDatei
make new folder in the folder "Backup Archiv" at desktop
set name of the result to neuOrdnername
move dieDatei to folder neuOrdnername in the folder "Backup Archiv"
end repeat
set suffix to ".sit"
set dieOrdnerliste to every folder of the folder "Backup Archiv"
repeat with i from 1 to the count of dieOrdnerliste
set neuerOrdnername to the name of item i in dieOrdnerliste
if neuerOrdnername ends with ".sit" then
set the name of item i in dieOrdnerliste to (neuerOrdnername - ".sit")
else if neuerOrdnername does not end with ".sit" then
set the name of item i in dieOrdnerliste to (neuerOrdnername - "")
end if
end repeat
end tell
end open |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 17.09.2001 - 23:02 Titel: Mein erstes Skript! Hat eine Macke... |
|
|
Hallo Busyman,
ich hab's mal eben etwas abgeändert:
on open dieDateiliste
tell application "Finder"
activate
make new folder at desktop
try
set name of the result to "Backup Archiv"
end try
repeat with dieDatei in dieDateiliste
get name of dieDatei
set neuOrdnername to the name of dieDatei
make new folder in the folder "Backup Archiv" at desktop
set name of the result to neuOrdnername
move dieDatei to folder neuOrdnername in the folder "Backup Archiv"
end repeat
set suffix to ".sit"
set dieOrdnerliste to every folder of the folder "Backup Archiv"
repeat with i from 1 to the count of dieOrdnerliste
set neuerOrdnername to the name of item i in dieOrdnerliste
if neuerOrdnername ends with ".sit" then
set neuerOrdnername to (characters 1 thru -4 of neuerOrdnername)
end if
end repeat
end tell
end open
Der Ausdruck "characters 1 thru -4" bewirkt, dass sich der Ordnername aus allen Zeichen, bis auf die letzten 4, zusammensetzt.
Du könntest übrigens in der if-Abfrage gleich noch weitere Kriterien einbeziehen:
if neuerOrdnername ends with ".sit" or neuerOrdnername ends with ".hqx" then
...
...
Aber zuerst solltest du eine Prüfung in das Skript einbauen, ob der Backup-Ordner bereits existiert. Im Moment wird immer ein neuer Ordner angelegt und dann trotzdem der bestehende Backup-Ordner benutzt.
Da ich dir den Spass nicht nehmen will, schreibe ich jetzt nicht, wie du das machen 'sollst'.
Zitat: |
BTW: Das Scripter-Magazin ist absolut klasse, wenn ich darf, würde ich gerne auf meiner Homepage einen Link zu Eurer Seite einfügen. AppleScript macht so viel Spaß, das sollten auch andere MacUser lernen |
Nur zu! Es spricht nichts gegen einen wohlgemeinten Link. Solange du uns nicht linkst und uns links liegen lässt.  _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 15:08, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 18.09.2001 - 00:06 Titel: Mein erstes Skript! Hat eine Macke... |
|
|
So, und gleich nochmal.
Ich hätte mir das Skript vorhin doch genauer ansehen sollen.
Hier die nächste Fassung:
on open dieDateiliste
tell application "Finder"
activate
make new folder at desktop
try
set name of the result to "Backup Archiv"
end try
repeat with dieDatei in dieDateiliste
set neuOrdnername to the name of (info for dieDatei)
make new folder in the folder "Backup Archiv" at desktop
set aktuellerOrdner to the result
if neuOrdnername ends with ".sit" then
set neuOrdnername to (characters 1 thru -5 of neuOrdnername) as string
end if
set name of aktuellerOrdner to neuOrdnername
move dieDatei to folder neuOrdnername in the folder "Backup Archiv"
end repeat
end tell
end open
Es muss natürlich so heißen:
(characters 1 thru -5 of neuOrdnername) as string
-5 deshalb, weil ja angegeben wird, bis zu (einschließlich) welchem Zeichen der Ordnername gebildet werden soll. Wichtig ist danach 'as string', da sonst das Ergebnis eine Liste mit Buchstaben ist. Die zweite Schleife habe ich mal weggelassen. Ich denke es ist logischer, wenn der Ordnername gleich überprüft wird und danach erst dem Ordner zugewiesen.
Noch ein Problem, das auftauchen wird:
Falls du eine Datei auf das Droplet ziehst, deren Name bereits existiert (wurde ja evtl. schon mal gesichert), versucht das Skript, erneut einen Ordner anzulegen, der aber dann den Namen eines bereits existierenden Ordners erhalten sollte. Und das gibt eine Fehlermeldung. Diesen Fall solltest du also abfangen. Entweder soll dann der existierende Ordner benutzt werden, wobei du dann dafür sorgen musst, dass die ältere Datei überschrieben werden kann, oder du lässt es zu, dass ein neuer Ordner angelegt wird und modifizierst dann den Dateinamen durch einen Zusatz (z.B. Zahl).
Es bleibt also interessant.  _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
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
|
|
|