Loop (normal)
Perform a series of commands repeatedly: either the specified number of times or until break is encountered.
Loop Count
Parameters
- Count
How many times (iterations) to perform the loop, which can be an expression. If omitted, the Loop continues indefinitely until a break or return is encountered. However, an explicit blank value or number less than 1 causes the loop to be skipped entirely.
If Count is an expression, it is evaluated only once, right before the loop begins.
Remarks
The loop command is usually followed by a block, which is a collection of statements that form the body of the loop. However, a loop with only a single statement does not require a block (an "if" and its "else" count as a single statement for this purpose).
A common use of this command is an infinite loop that uses the break command somewhere in the loop's body to determine when to stop the loop.
The use of break and continue inside a loop are encouraged as alternatives to goto, since they generally make a script more understandable and maintainable. To create a "Do...While" loop, make the last statement of the loop's body an IF statement that conditionally issues the break command. The same technique can be used to create a "While" loop, but the While command should be used instead.
The built-in variable A_Index contains the number of the current loop iteration. It contains 1 the first time the loop's body is executed. For the second time, it contains 2; and so on. If an inner loop is enclosed by an outer loop, the inner loop takes precedence. A_Index works inside all types of loops, including file-loops and registry-loops; but A_Index contains 0 outside of a loop.
A_Index can be assigned any integer value by the script. If Count is specified, changing A_Index affects the number of iterations that will be performed. For example, A_Index := 3
would make the loop command act as though it is on the third iteration (A_Index will be 4 on the next iteration), while A_Index--
would prevent the current iteration from being counted toward the total.
The One True Brace (OTB) style may optionally be used with normal loops (but specialized loops such as file-pattern and parsing support OTB only in expression mode). For example:
Loop { ... } Loop RepeatCount { ... }
Specialized loops: Loops can be used to automatically retrieve files, folders, or registry items (one at a time). See file-loop and registry-loop for details. In addition, file-reading loops can operate on the entire contents of a file, one line at a time. Finally, parsing loops can operate on the individual fields contained inside a delimited string.
Related
Until, While-loop, For-loop, Files-and-folders loop, Registry loop, File-reading loop, Parsing loop, Break, Continue, Blocks
Examples
Loop, 3 { MsgBox, Iteration number is %A_Index%. ; A_Index will be 1, 2, then 3 Sleep, 100 } Loop { if a_index > 25 break ; Terminate the loop if a_index < 20 continue ; Skip the below and start a new iteration MsgBox, a_index = %a_index% ; This will display only the numbers 20 through 25 }