1commands

11 декабря 2016 23:52

Скрипты OneScript


Библиотека для упрощения работы c запуском различных приложений и командных файлов (cmd, bat, bash, PowerShell и др.) из oscript.

Позволяет выполнять рутинные операции по запуску приложений и командных файлов системы.

Пример работы:

Команда = Новый Команда;

Команда.УстановитьКоманду("oscript");
Команда.ДобавитьПараметр("-version");	

// или сразу Команда.УстановитьСтрокуЗапуска("oscript -version");

КодВозврата = Команда.Исполнить();
Сообщить(КодВозврата);

Сообщить(Команда.ПолучитьВывод());

или запуск командного файла

КомандныйФайл = Новый КомандныйФайл;
КомандныйФайл.Создать();

КомандныйФайл.ДобавитьКоманду("@echo off");	
КомандныйФайл.ДобавитьКоманду("oscript -version");	

Сообщить(КомандныйФайл.ПолучитьТекстФайла());

КодВозврата = КомандныйФайл.Исполнить();
Сообщить(КодВозврата);

Сообщить(КомандныйФайл.ПолучитьВывод());

или запуск командного файла PowerShell

КомандныйФайл = Новый КомандныйФайл;
КомандныйФайл.УстановитьПриложение("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
КомандныйФайл.Создать("",".ps1");

КомандныйФайл.ДобавитьКоманду("Get-Help");		

Сообщить(КомандныйФайл.ПолучитьТекстФайла());

КодВозврата = КомандныйФайл.Исполнить();
Сообщить(КодВозврата);

Сообщить(КомандныйФайл.ПолучитьВывод());

Так же описание функциональности содержится в папке features. В прилагающихся step_definitions можно подсмотреть больше примеров.

FAQ

Вопрос:

при использовании классов Команда/Командный файл происходит зависание выполнения команды.
В консоли та же команда выполняется без зависания.

Например, при использовании gitsync. Описание ошибки и расследование

Что делать?

Ответ:

Отключить режим использования немедленного вывода лога команды, использовав метод ПоказыватьВыводНемедленно(Ложь);
В этом случае вывод команды будет получен после завершения работы команды, а не во время ее выполнения.

Сайт 0

Комментарии

Модератору