Что нового

Как правильно установить цикл большого скрипта?

GambitTy5

Новичок
Сообщения
3
Репутация
0
Все привет!
Есть некий очень большой скрипт. Он работает.

Как только я хочу добавить цикличность

И ставлю в начале скрипта :
Код:
For $i = 10 To 1 Step -1


А в конце :
Код:
Next


У меня сразу вылетает ошибка : 1569690926273.png

Причем скрипт указывает мне строчку по средине скрипта- я не могу понять причем она тут вообще ....
Мне нужно весь скрипт зациклировать.

Как правильно сделать скрипт- что бы он повторялся несколько раз?
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Нужен весь участок кода , по тем данным , что вы предоставили можно только догадываться.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
For $i = 10 To 1 Step -1
    ConsoleWrite($i & @LF)
Next

этот код не может вызывать ошибки. значит в нем, возможно. есть еще цикл, в котором не хватает Next
 
Автор
G

GambitTy5

Новичок
Сообщения
3
Репутация
0
Код:
For $i = 10 To 1 Step -1
    ConsoleWrite($i & @LF)
Next

этот код не может вызывать ошибки. значит в нем, возможно. есть еще цикл, в котором не хватает Next
А почему он тогда работает когда я не пытаюсь цикл добавить? Он бы мне выдал ошибку что где-то изначально не хватает Next
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
"что и почему" никто не узнает, пока не увидим пример кода, который выдает ошибку.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ставлю в начале скрипта <...> в конце
Что вы понимаете под началом и концом скрипта? Первую и последнюю строку текста?
Большой скрипт наверняка содержит определения функций Func ... EndFunc, которые нельзя помещать в цикл, в том числе через директиву #include.
Также, скрипт может содержать глобальные переменные, которые будут переинициализированы при каждой итерации цикла.
Ещё могут быть функции, выполняемые только один раз при запуске скрипта. И т.д.
Другими словами, нужно знать структуру скрипта, чтобы поместить начало и конец цикла точно в начало и конец того фрагмента кода, который может выполняться в цикле, а не просто в "начало" и "конец".
 
Последнее редактирование:
Автор
G

GambitTy5

Новичок
Сообщения
3
Репутация
0
Что вы понимаете под началом и концом скрипта? Первую и последнюю сроку текста?
Большой скрипт наверняка содержит определения функций Func ... EndFunc, которые нельзя помещать в цикл, в том числе через директиву #include.
Также, скрипт может содержать глобальные переменные, которые будут переинициализированы при каждой итерации цикла.
Ещё могут быть функции, выполняемые только один раз при запуске скрипта. И т.д.
Другими словами, нужно знать структуру скрипта, чтобы поместить начало и конец цикла точно в начало и конец того фрагмента кода, который может выполняться в цикле, а не просто в "начало" и "конец".
Да. Cогласен с вами. Там много функций и глобальных переменных. Нужно выносить функции за цикл...и смотреть. Cпасибо.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
@GambitTy5
Как вариант, можно запускать скрипт нужное число раз другим скриптом. Просто создайте в той же папке новый скрипт
Код:
For $i = 1 To 10
  RunWait(@AutoItExe & " ScriptName.au3")
Next
Где ScriptName.au3 - это имя вашего большого скрипта. Обратите внимание на пробел перед именем скрипта.
Запустите этот скрипт и он 10 раз запустит ScriptName.au3
 
Верх