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

Mein erstes Skript! Hat eine Macke... - Liegt an meiner Befe

 
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
Busyman
•-->
•-->


Anmeldedatum: 16.09.2001
Beiträge: 64
Wohnort: Ostwestfalen

BeitragVerfasst am: 17.09.2001 - 21:56    Titel: Mein erstes Skript! Hat eine Macke... - Liegt an meiner Befe Antworten mit Zitat

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 Smile (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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 17.09.2001 - 23:02    Titel: Mein erstes Skript! Hat eine Macke... Antworten mit Zitat

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 Smile


Nur zu! Es spricht nichts gegen einen wohlgemeinten Link. Solange du uns nicht linkst und uns links liegen lässt. Wink
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 01.03.2003 - 15:08, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 18.09.2001 - 00:06    Titel: Mein erstes Skript! Hat eine Macke... Antworten mit Zitat

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. Very Happy
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
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