RUN (выполнить команду ДОС)
RUN(команда)
команда | Строковая константа или переменная, содержащая команду. |
Оператор RUN выполняет команду, как если бы она была введена в командной строке ДОС. По исполнении КОМАНДЫ, управление передается оператору, следующему за оператором RUN.
RUN закрывает все файлы, сохраняет экран и записывает образ памяти программы во временный ДОС-файл с расширением .RUN. Таким путем получаются уникальные имена файлов для множества временных .RUN-файлов. Временный файл пишется на текущий диск в текущий каталог, если переменная окружения 'CLATMP='не указана. CLATMP задает диск и каталог для всех временных файлов Кларион. Это может быть RAM-диск (рекомендуется не менее 512К). Команда ДОС SET CLATMP=D:\ задает корневой каталог диска D: как каталог для временных файлов.
RUN НЕ загружает автоматически вторую копию COMMAND.COM. Поэтому, КОМАНДА должна вызывать его если надо. COMMAND.COM нужен для внутренних команд ДОС, BAT-файлов или команд, которые должны искать программы по PATH. Если программа КОМАНДА находится в текущем каталоге, или путь к ней указан в КОМАНДЕ, то нет никакой необходимости во второй копии COMMAND.COM. Тем не менее, без COMMAND.COM, КОМАНДА должна включать так же расширение программного файла (.EXE или .COM).
По исполнении КОМАНДЫ, временный файл перезагружается в память и выполнение программы продолжается с оператора, следующего за оператором RUN. После восстановления программы в памяти, все файлы переоткрываются в том же режиме доступа, в котором они были открыты до RUN, так же, восстанавливается сохраненный экран. Временный файл должен быть перезагружен в то же самое место в памяти, из которого он выгружался, то есть, использовать RUN для загрузки резидентов (TSR) НЕ разрешено. Поскольку RUN закрывает все файлы а затем переоткрывает их, то текущие указатели на записи теряются. Следовательно, выполнение оператора RUN во время доступа к файлам, крайне не рекомендуется.
Успешность выполнения КОМАНДЫ может быть проверена функцией RUNCODE, которая возвращает код выхода DOS, с которым завершилась КОМАНДА. Если выполнение неудачно, RUN передает код ошибки в функции ERROR и ERRORCODE.