hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Goar S
Beiträge: 327
12. Aug 2003, 10:04
Beitrag #1 von 2
Bewertung:
(464 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Fehler bei Skriptausführung über OSA-Menü


Hallo Forum,

ab und zu kopiere ich Dateien von einem Rechner (OS 9.2.2, im Folgenden R1) auf einen anderen (OS 10.2.5, im Folgenden R2), von dem auch ich u.a. Daten per ISDN versende.

Auf dem Schreibtisch von R1 liegt ein Alias des Zielordners von R2. Ich markiere die zu kopierenden Dateien und rufe mit der Tastenkombination ctrl-Befehl-t das Skript über das OSA-Menü auf (liegt als Classic Applet im OSA-Ordner):
---
[code:1]tell application "Finder"
 global grobliste
 global versandListe
 set versandListe to {}
 set grobliste to selection -- ausgewählte zu kopierende Dateien
  -- Aliasse werden durch Originale ersetzt
 repeat with i from 1 to count of grobliste
  set curName to item i of my grobliste
  set curInfo to info for curName
  if alias of curInfo then
   set curName to original item of curName
  end if
  set end of versandListe to curName
 end repeat
  -- Kopieren der Originale
 repeat with i from 1 to count of versandListe
  set curName to item i of my versandListe
  try
   duplicate curName to folder "ISDN Ausgangsordner" of folder "Shared" of folder "Users" of disk ¬
    "Goar 519" with replacing
  on error
   display dialog "Passwort eingegeben?" buttons {"Abbruch"} default button 1
   error number -128
  end try
 end repeat
  -- wenn eine Datei im Zielordner bereits vorhanden war, wird diese in den Papierkorb verschoben, deshalb...
 try
  empty trash without warns before emptying
 end try
end tell[/code:1]
---
Wenn ich so eine Datei kopiere, erscheint 2x (zweimal) der Kopierbalken und der Finder gibt den Geist auf, vielleicht nicht sofort, aber doch ganz bald. Wo liegt der Wurm? Bei den Versuchen, diese Verschiebung aus dem Skriptmaker heraus auszuführen, ist dieser Fehler nie aufgetreten.
Gruß, Goar Top
 
X
Hans Haesler  M  p
Beiträge: 5474
12. Aug 2003, 12:25
Beitrag #2 von 2
Beitrag ID: #418249
Bewertung:
(463 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Fehler bei Skriptausführung über OSA-Menü


Hallo Goar,

ich vermute, dass es genügen wird, dem Applet mehr Speicher zuzuordnen: Applet auswählen, mit Befehl-I
den Informationsdialog aufrufen, mit dem Pop-up-Menü zur Speicherzuweisung wechseln und den Vorgabewert
von 200 KB auf 1024 oder 2048 erhöhen.

Ausserdem sollte man vermeiden, das ganze Script mit einem einzigen Finder-tell-Block zu umgeben.
Das Deklarieren und Definieren von Variablen, und vor allem Befehle, welche an andere Applikationen
oder Scripting Additions gerichtet sind, sollten nicht dem Finder vorgelegt werden.

Warum? Der Finder hat alle Hände voll zu tun. Und dann kommt zum Beispiel ein Befehl mit 'info for'. Wenn
der Finder einen Moment Zeit hat, muss er zuerst die Brille aufsetzen, lange nachdenken und wenn er
realisiert hat, dass er die Antwort nicht kennt, muss er die Anfrage an die richtige Adresse weiterleiten:
die Scripting Addition "Standard Additions".

Den Finder sollte man also nur wenn es nicht anders geht einsetzen. Und wenn möglich punktuell,
d.h. mit einem Einzeiler, wie ...
Code
tell application "Finder" to duplicate ... 

... oder ...
Code
tell application "Finder" to empty trash ... 

Ich habe beim Entwickeln eines Scripts, welches die Feinbilder sammelt, verschiedene Formen von Finder-
Befehlen getestet und mit dem Einzeiler die kürzesten Ausführungszeiten erzielt.

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418248] Top