ПроцессОс
Стд::СредаИсполнения::ПроцессОс
Объект для работы с внешними процессами.
- Объект
ПроцессОСзапускает процесс, а не выполняет команды ОС.
Например, в Windows для получения листинга директорий или выполнения команд (dir / mkdir / cp и т.д.)
с помощью консоли (cmd.exe) или интерпретатора (powershell.exe) используется следующий синтаксис:
// Создать процесс cmd.exe и передать (/c) ему команду (copy).
// Следует учитывать, что команда copy в Windows копирует только файлы.
пер Про цесс = новый ПроцессОс("cmd.exe", ["/c", "copy " + "C:\\example.txt" + " " + "D:\\example.txt"])
Для Linux:
// Создать процесс bash и передать (-c) в него команду (cp)
пер Процесс = новый Проц ессОс("cmd.exe", ["/c", "copy " + "~/Documents/example.txt" + " " + "~/Backup/example.txt"])
- При возникновении проблем с кодировкой обратите внимание на следующий пример:
метод ПолучитьВерсиюИсполнителя(): Строка
пер Процесс = новый ПроцессОс("cmd.exe", ["/c", "executor.cmd -v"])
Процесс.Запустить()
возврат Процесс.ПолучитьПотокВывода().ПрочитатьКакСтроку("cp866") // вернет версию Исполнителя
;
==
- Для запуска программ из
PATH:
метод ПолучитьВерсиюJavaИMaven()
// Путь до java.exe и mvn.cmd добавлен в PATH,
// поэтому можно не писать "cmd.exe /c"
пер Процесс1 = новый ПроцессОс("java", ["--version"])
Процесс1.Запустить()
// Для запуска скриптов нужно указывать расширение
пер Процесс2 = новый ПроцессОс("mvn.cmd", ["-v"])
Процесс2.Запустить()
;
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект
Конструкторы
ПроцессОс
Создает процесс с указанной командой запускаКоманда и признаком объединения потоков вывода и ошибок СоединитьПотокиОшибокИВывода.
Созданный процесс не запускается.
ПроцессОс
ПроцессОс(
Команда: Строка,
Аргументы: ЧитаемыйМассив<Объект>,
СоединитьПотокиОшибокИВывода: Булево = Истина)Команда, аргументами Аргументы и признаком объединения потоков вывода и ошибок СоединитьПотокиОшибокИВывода.
Созданный процесс не запускается.
Перегрузка
ПроцессОс(Команда: Строка, СоединитьПотокиОшибокИВывода: Булево = Истина)
Свойства
ПотокиОшибокИВыводаСоединены
ТолькоЧтение
ПотокиОшибокИВыводаСоединены: БулевоОпределяет, соединены ли потоки ошибок и вывода:
Истина- ошибки пишутся в поток вывода.Ложь- ошибки пишутся в поток ошибок.
Методы
Живой
Живой(): БулевоЗапустить
Запустить(Каталог: Строка? = Неопределено)Каталог- рабочий каталог запускаемого и дочерних процессов.