Использование команды DOS start

ispolzovanie komandy dos start Системные инструменты параллельного выполнения

Чтобы понять, почему это происходит, нужно сначала разобраться, как действует команда DOS start в целом. Грубо говоря, командная строка DOS вида start command действует, как если бы команда command вводилась в диалоговом окне Windows Выполнить (Run), которое можно открыть с помощью меню кнопки Пуск (Start). Если command является именем файла, он открывается точно так же, как если щелкнуть на его имени в графическом интерфейсе Проводника Windows (Windows Explorer).

Например, следующие три команды DOS автоматически запускают Internet Explorer, программу просмотра файлов графических изображений, и программу проигрывания звуковых файлов для соответствующих файлов в командах. Windows просто открывает файл в той программе, которая определена для обработки файлов с указанным расширением. Более того, все три эти программы выполняются независимо от окна консоли DOS, в котором введена команда:

C:\\PP4E\System\Media> start lp4e-preface-preview.html

C:\\PP4E\System\Media> start ora-lp4e.jpg

C:\\PP4E\System\Media> start sousa.au

Поскольку команда start может запустить любой файл и командную строку, нет причин, по которым ее нельзя было бы использовать для запуска независимо выполняемой программы Python:

C:\\PP4E\System\Processes> start child.py 1

Это возможно благодаря тому, что при установке Python регистрируется для открытия файлов с расширениями .py. Сценарий child.py будет запущен независимо от окна консоли DOS, несмотря на то, что не было задано ни имя выполняемого файла интерпретатора Python, ни путь к нему. Однако, поскольку child.py просто выводит сообщение и завершается, результат не вполне удовлетворителен: новое окно DOS появляется, чтобы обслужить стандартный вывод сценария, и тут же исчезает, когда он завершается. Лучше будет, если добавить в конец программы вызов функции input, чтобы перед завершением происходило ожидание нажатия какой-либо клавиши:

C:\\PP4E\System\Processes> type child-wait.py

import os, sys

print(‘Hello from child’, os.getpid(), sys.argv[1])

input(“Press <Enter>”) # предотвращает исчезновение окна консоли в Windows

C:\\PP4E\System\Processes> start child-wait.py 2

Теперь окно DOS дочерней программы появляется на экране и сохраняется после возврата из команды start. Нажатие клавиши Enter во всплывающем окне DOS заставляет его закрыться.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий