Hallo Yoschi,
anstelle von repeat with x in watchlist diese Form benutzen:
---
repeat with i from 1 to count of watchlist by 2
---
Also den automatischen Zähler i, welcher mit by 2 jede zweite Datei nimmt.
Die erste, die dritte, die fünfte usw.
Damit auch die geraden Elemente der Liste verschoben werden, muss in der
Schleife eine zweite Zuordnung mit item (i + 1) of watchlist gemacht werden.
Die beiden try-Wickel sind notwendig, falls die Rechnung am Schluss der
Schleife nicht aufgeht und ein nicht vorhandenes Element adressiert wird.
Übrigens: Hat Dein Script funktioniert und Dateien verschoben? Ich musste
zuerst im Befehl set watchfile to eingang & ":" & x den Doppelpunkt entfernen.
Zudem habe ich noch verschiedene Änderungen gemacht:
– Das Behandeln der Dateien aus dem idle-Handler herausgenommen.
Nur der Aufruf des listFiles-Handlers und ein return 5 sind noch drin
(alle fünf Sekunden wird die Liste erstellt und abgearbeitet).
– Beim Auflisten des Ordnerinhalts den Zusatz without invisibles angefügt
(damit entfällt der Test if x does not start with ".")
– Den Verschieben-Befehl in eine einzelne Zeile verwandelt.
– Einen try-Wickel darumgelegt.
– with replacing angefügt, damit gleichnamige Dateien überschrieben werden.
---
property eingang : "Daten:Test:Eingang:"
property Ordnerx : "Daten:Test:1:"
property Ordnery : "Daten:Test:2:"
on idle
listFiles()
return 5
end idle
on listFiles()
set watchlist to list folder eingang without invisibles
try
repeat with i from 1 to count of watchlist by 2
try
set watchfile1 to eingang & item i of watchlist
verschieben(watchfile1, Ordnerx)
end try
try
set watchfile2 to eingang & item (i + 1) of watchlist
verschieben(watchfile2, Ordnery)
end try
end repeat
end try
end listFiles
on verschieben(x, z)
try
tell application "Finder" to move file x to folder z with replacing
end try
end verschieben
---
Gruss, Hans
als Antwort auf: [#421680]