ypppu пишет:...Главный скрипт запускается, выбирает случайное число, соответственной запускает случайный скрипт, а сам сразу завершает работу. До тех пор, пока текущий "случайный скрипт" его не запустит.
Можно и без главного/запускного: подписываем названия у всех нужных скриптов одинаково (в моём примере: script_1, script_2, и т.д.), далее в самих скриптах (при учёте, что они со слов г-на DaVinchi одинаковые - ...7 скриптов с одинаковым содержимым) прописываем:
;основная часть скрипта
ToolTip, script_1 запущен, 640, 512 ; тултип для мониторинга, в каждом скрипте правим лишь его номер, после отладки можно убрать
Sleep, 5000
Tooltip
If GetKeyState("Delete", "P") ; если удерживается нажатой DELETE - прекращаем цикл запусков
ExitApp
IniRead, var, %A_ScriptDir%\for_script_not_repeat.ini, last_random_run, var ; считываем номер предыдущего запущеного срипта для последующей проверки
SetEnv, var, % var ; присваиваем номер переменной
repeat_random_run: ; метка возврата для регенерации
Random, random_run, 1, 7 ; собственно сам "рандомайзер"
IniWrite, %random_run%, %A_ScriptDir%\for_script_not_repeat.ini, last_random_run, var ; пишем номер последнего генерированого скрипта
If var = %random_run% ; проверка, если номер предыдущего запущеного скрипта совпадает то,
Gosub, repeat_random_run ; возращаемся на регенерацию, до несовпадания
Run, %A_ScriptDir%\script_%random_run%.ahk ; запускается скрипт с генерированым номером
ExitApp
Замечу, что при первом запуске (когда не создан ещё ини файл), есть вероятность повторения запуска скриптов по нумерации.