2012-04-03 14 views
0

Ich mache ein Skript, um mehrere Ordner in einem Verzeichnis zu öffnen, und es funktioniert nicht wie geplant. Ich habe versucht, es zu skizzieren und durch die einzelnen Schritte zu gehen, indem ich vorginge, dass ich der Computer bin, der es ausführt, aber wenn ich es ausführe, ist das Ergebnis ganz anders.Replizieren AppleScript Wiederholungsschleifen Änderungen sofort?

Es verwendet wiederholen und wiederholen mit viel. Die Wiederholung wird solange wiederholt, wie in einem bestimmten Array ALLES ist (ich meine Liste) und die Wiederholung mit ist INSIDE der ersten Wiederholung, die ihre eigene Schleife mit allem im Array zu dieser Zeit wiederholt.

Jetzt ist eine der Aktionen der Wiederholung mit Schleife, das Array zu ändern. Was ich denke, würde die Schleife ändern, nicht wahr?

Beispiel

(FoldList ist A, B, C)

repeat until {} 
repeat with folder_name in foldList 
do something 
set foldList to 1, 2, 3 
end repeat 
end repeat 

Was ich denke, das tut, ist durch die erste Schleife als "A" iteriert, aber bevor das Ende schlagen würde es ändern FoldList zu 1, 2, 3. Anstatt also die nächste Schleife als "B" zu durchlaufen, würde ich denken, dass es stattdessen "1" wäre.

Aber wenn es das tat, dann glaube ich nicht, dass meine manuelle Walkthrough durch so viel wäre. Ich gehe also davon aus, dass in Applescript, wenn Sie sich wiederholen, die Schleife unabhängig vom Ändern der Liste auf dem letzten Element der ersten Liste endet (bevor die Liste ersetzt wurde). Ist das richtig?

Antwort

1

Dies hilft Ihnen, den Wert jeder Schleife zu finden.

set foldList to {"A", "B", "C"} 
repeat 3 times 
repeat with folder_name in foldList 
    display dialog folder_name 
    set foldList to {1, 2, 3} 
end repeat 
end repeat 

Version 2:

set foldList to {"A", "B", "C"} 
repeat 3 times 
repeat with i from 1 to count of foldList 
    display dialog item i of foldList 
    set foldList to {1, 2, 3} 
end repeat 
end repeat 
+0

Ja, es sieht aus wie es mit der Schleife unabhängig von der Änderung weiter ... Sie haben keine Ahnung, warum, oder wie man um ihn zu bekommen? Vielen Dank. Oh und blöde Frage aber nur um zu verdeutlichen, was ich versuche eine rekursive Schleife zu nennen? – user1159454

+1

Versuchen Sie Version 2 ... – adayzdone

+0

Danke! Das hat geholfen – user1159454