belovkirill
Новичок
- Сообщения
- 23
- Репутация
- 0
Здравствуйте. Каким образом выполняются файлы включенные в сценарий с помощью #include <...> или #include '...'? Дело в том, что у меня имеется сценарий, который запускает по очереди другие модули таким вот образом. Но мне непонятна очередь в которой все это дело происходит. Вот собственно примерная схема того что я хотел бы чтобы происходило:
В одной папке имеются файлы: start.au3, init.au3, include.au3 и папка lib внутри которой произвольное количество сценариев AutoIt
файл start.au3 - сначала выполняет просто команды:
в файле include.au3 - находятся строки вида:
которые просто выполняют произвольные сценарии из папки lib
файл init.au3 - содержит код, который выполняет редактирование файла include.au3 вот каким образом:
открывает include.au3 на перезапись
получает все имена файлов из папки lib
записывает в include.au3 строчки вида:
закрывает файл include.au3
Вот собственно и весь короткий пересказ работы моей программки. Конечно понимаю что это все выглядит слишком уж "по-индусски", но это просто скажем так небольшой эксперимент. А смысл этого всего в том, чтобы просто создавая множество автономно работающих файлов-сценариев не вызывать каждый по отдельности, а просто копировать их все по мере появления в папку lib. Конечно можно то же самое без проблем сделать просто добавив путь на папку lib в раздел реестра HKEY_CURRENT_USER\Software\AutoIt v3\AutoIt.
Теперь о, собственно, возникшей проблеме. При запуске start.au3 оказывается вот что. При добавлении нового файла-сценария в папку lib - init.au3 выполняется и редактирует include.au3, после чего все, в том числе и новые добавленные файлы-сценарии выполняются в start.au3. Но если удалить какой-то из файлов в lib. То возникает ошибка, связанная с отсутствием удаленного файла и невозможностью его выполнения с помощью:
А файл include.au3 оказывается не отредактированным. И у меня поэтому возник вопрос - каким образом точно управлять порядком выполнения строк с
? Чтобы файл init.au3 стопроцентно выполнился и успел перезаписать все что надо до include.au3. Прошу прощения за громоздкое описание простой проблемы. Заранее спасибо!
В одной папке имеются файлы: start.au3, init.au3, include.au3 и папка lib внутри которой произвольное количество сценариев AutoIt
файл start.au3 - сначала выполняет просто команды:
Код:
#include 'init.au3'
#include 'include.au3'
в файле include.au3 - находятся строки вида:
Код:
#include 'lib\script1.au3'
#include 'lib\script2.au3'
...
#include 'lib\scriptN.au3'
которые просто выполняют произвольные сценарии из папки lib
файл init.au3 - содержит код, который выполняет редактирование файла include.au3 вот каким образом:
открывает include.au3 на перезапись
получает все имена файлов из папки lib
записывает в include.au3 строчки вида:
Код:
#include 'lib\script1.au3'
#include 'lib\script2.au3'
...
#include 'lib\scriptN.au3'
закрывает файл include.au3
Вот собственно и весь короткий пересказ работы моей программки. Конечно понимаю что это все выглядит слишком уж "по-индусски", но это просто скажем так небольшой эксперимент. А смысл этого всего в том, чтобы просто создавая множество автономно работающих файлов-сценариев не вызывать каждый по отдельности, а просто копировать их все по мере появления в папку lib. Конечно можно то же самое без проблем сделать просто добавив путь на папку lib в раздел реестра HKEY_CURRENT_USER\Software\AutoIt v3\AutoIt.
Теперь о, собственно, возникшей проблеме. При запуске start.au3 оказывается вот что. При добавлении нового файла-сценария в папку lib - init.au3 выполняется и редактирует include.au3, после чего все, в том числе и новые добавленные файлы-сценарии выполняются в start.au3. Но если удалить какой-то из файлов в lib. То возникает ошибка, связанная с отсутствием удаленного файла и невозможностью его выполнения с помощью:
Код:
#include 'deletedfile.au3'
А файл include.au3 оказывается не отредактированным. И у меня поэтому возник вопрос - каким образом точно управлять порядком выполнения строк с
Код:
#include 'file.au3'