При использовании команды XSUB можно передавать входные данные программам из командного файла только, если существует стандартный способ завершения этих программ. Иными словами, программы (например, PIP), для завершения которых необходимо нажать клавишу RETURN или ввести команду CTRL/C (реинициализация системы), нельзя использовать совместно с командой XSUB, обладающей особыми свойствами. Это объясняется тем, что программа ’’SUBMIT” не опознает пустые строки (т. е. те, которые содержат только символы возврата каретки и перевода строки в коде ASCII) в командном файле. Эти строки будут рассматриваться как ошибочные. Строки, содержащие символ ,ЛС” (команда ЕТХ в коде ASCII или значение 03 в шестнадцатеричном формате) для обозначения команды CTRL/C (реинициализация системы), будут также рассматриваться как ошибочные. Поэтому если необходимо автоматически завершить программы, запущенные командой SUBMIT, то следует использовать только те программы, которые для завершения требуют ввода специальных команд (таких как Е при использовании программы ”ED”), или те программы, которые завершаются сразу после получения ответа на последний промпт. Пользователь, безусловно, всегда имеет право ввести вручную с консоли специальную команду выхода из программы. В следующем примере представлено содержимое командного файла, в котором используется команда XSUB: AMYPE MODTEXT.SUB XSUB ED 1.TXT SAB 2: ОТТ «ЗК Е STAT 1. А) В этом примере показано, что команда XSUB используется совместно с командой ED. При обработке файла ’’MODTEXT.SUB” в первую очередь происходит загрузка программы ’’XSUB”. Затем будет запущена команда ”EDOl. TXT” с переменной ”01”,замененной значением первого параметра. Программа ”ED” открывает специфицированный файл, и, как только на консоли появляется промпт средства программы ’’XSUB” будут приведены в действие. Следующая строка командного файла содержит группу команд программы ”ED”, и они передаются программе ”ED”, как и введенные с консоли. Кроме того, последующие строки содержат команды программы ”ED” за исключением последней строки (’’STATQl.”), содержащей команду, которая должна выполняться в основном командном режиме ОС СР/М. Это не составляет проблемы, поскольку в предыдущей строке содержится команда Е, которая предписывает программе ”ED” завершить сеанс редактирования и восстановить режим команд ОС СР/М. Таким образом, команда ’’STAT 01.” будет обработана правильно. В следующем примере показано, что происходит в процессе обработки этого командного файла: А>SUBMIT hODTEXT OUTPUT 45 10 А>XSUB A>ED OUTPUT.TXT • #AB 1. 45- 45- FROM THIS/ KILL THE NEXT 10 45 10K 45: E (команда XSUB по-прежнему активна) A>STAT OUTPUT RECS BYTES EXT ACC 110 14K 1 R/W A:OUTPUT.ВАК 109 13K 1 R/W A:OUTPUT.TXT BYTES REMAINING ON A. 476K A> Из примера видно, что в процессе обработки командного файла обращение к программе ”ED” происходит обычным образом. Кроме того, все команды программы ”ED” из этого файла были переданы программе ”ED” и затем успешно выполнены. После обработки команды Е (выход) выполнение программы ”ED” было завершено. Сообщение ’’(XSUB ACTIVE)” означает, что программа ’’SUBMIT” перешла в режим команд ОС СР/М и готова к обработке очередной команды. Поскольку программа ’’XSUB” в этот момент остается активной, ее средства можно в дальнейшем использовать для передачи программам исходных данных. Существует множество различных приложений, в которых совместно с командой SUBMIT можно использовать команду XSUB. Однако, не ожидайте, что командные файлы с первого раза начнут работать должным образом. Чтобы файлы этого типа работали должным образом, их часто приходится многократно исправлять. Например, вопреки утверждению о том, какие программы следует использовать совместно с командой XSUB для автоматического завершения программы и какие нет, можно столкнуться с программой, которая должна работать, но по какой-либо причине не работает. Хорошо проэкспериментировать с командами SUBMIT и XSUB на пустом диске (который не содержит ни одного представляющего интерес файла).