From 87d47366af4c99c28e6c999592a6bf3416b7c3f6 Mon Sep 17 00:00:00 2001 From: hpa <hpa@ts.ru> Date: Fri, 13 Oct 2017 00:10:29 +0300 Subject: [PATCH 1/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=BD=D1=8B=D1=85=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=BE=D0=B2=20=D0=BD=D0=B0=20=D1=8F=D0=B7=D0=BA?= =?UTF-8?q?=D0=B5=20PowerShell.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\244\320\260\320\271\320\273\321\213.os" | 33 ++++++++++++++++--- ...4\320\260\320\271\320\273\321\213.feature" | 11 ++++++- readme.md | 19 +++++++++-- ...20\271\320\244\320\260\320\271\320\273.os" | 23 +++++++++++-- 4 files changed, 76 insertions(+), 10 deletions(-) diff --git "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" index 5d26a8f..3056ac4 100644 --- "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" +++ "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" @@ -10,11 +10,13 @@ ВсеШаги = Новый Массив; ВсеШаги.Добавить("ЯСоздаюКомандныйФайл"); + ВсеШаги.Добавить("ЯСоздаюКомандныйФайлPowerShell"); ВсеШаги.Добавить("ЯДобавляюСтрокуВКомандныйФайл"); ВсеШаги.Добавить("ЯСообщаюСодержимоеКомандногоФайла"); ВсеШаги.Добавить("ЯВыполняюКомандныйФайл"); ВсеШаги.Добавить("ВыводКомандногоФайлаСодержит"); ВсеШаги.Добавить("КодВозвратаКомандногоФайлаРавен"); + ВсеШаги.Добавить("ЯУстанавливаюПриложениеЗапуска"); Возврат ВсеШаги; КонецФункции @@ -33,9 +35,12 @@ //Я создаю командный файл Процедура ЯСоздаюКомандныйФайл() Экспорт - КомандныйФайл = Новый КомандныйФайл; - КомандныйФайл.Создать(); - БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); + СоздатьФайл("",""); +КонецПроцедуры + +//Я создаю командный файл PowerShell "" ".ps1" +Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="",Знач Расширение="") Экспорт + СоздатьФайл(Путь,Расширение); КонецПроцедуры //я добавляю строку "echo командный файл" в командный файл @@ -80,9 +85,16 @@ Ожидаем.Что(КомандныйФайл.ПолучитьКодВозврата(), "Код возврата").Равно(ОжидаемыйКодВозврата); КонецПроцедуры +//Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" +Процедура ЯУстанавливаюПриложениеЗапуска(Знач ПутьПриложения="") Экспорт + КомандныйФайл = Новый КомандныйФайл; + КомандныйФайл.УстановитьПриложение(ПутьПриложения); + БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); +КонецПроцедуры -Процедура ВывестиТекстФайла(Знач ИмяФайла, Знач Кодировка = Неопределено) +Процедура ВывестиТекстФайла(Знач ИмяФайла, Знач Кодировка = Неопределено) + Файл = Новый Файл(ИмяФайла); Если НЕ Файл.Существует() Тогда Возврат; @@ -99,3 +111,16 @@ Сообщить(СтрокаФайла); КонецПроцедуры + +Процедура СоздатьФайл(Знач Путь="",Знач Расширение="") + КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); + Если КомандныйФайл=Неопределено Тогда + КомандныйФайл = Новый КомандныйФайл; + КонецЕсли; + + КомандныйФайл.Создать(Путь,Расширение); + БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); +КонецПроцедуры + + + diff --git "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" index 853efbd..0e64b87 100644 --- "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" +++ "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" @@ -9,7 +9,16 @@ Контекст: Отключение отладки в логах Допустим Я выключаю отладку лога с именем "oscript.lib.commands" -Сценарий: Выполнение простого командного файла +Сценарий: Выполнение командного файла PowerShell + Когда Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" + И Я создаю командный файл PowerShell "" ".ps1" + И Я добавляю строку "echo PowerShell" в командный файл + И Я сообщаю содержимое командного файла + И Я выполняю командный файл + Тогда Вывод командного файла содержит "PowerShell" + И Код возврата командного файла равен 0 + +Сценарий: Выполнение командного файла Когда Я создаю командный файл И Я добавляю строку "echo command file" в командный файл И Я сообщаю содержимое командного файла diff --git a/readme.md b/readme.md index cc713b2..94afdc4 100644 --- a/readme.md +++ b/readme.md @@ -3,7 +3,7 @@ Обсудить [![Join the chat at https://gitter.im/EvilBeaver/oscript-library](https://badges.gitter.im/EvilBeaver/oscript-library.svg)](https://gitter.im/EvilBeaver/oscript-library?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![GitHub release](https://img.shields.io/github/release/artbear/1commands.svg)](https://github.com/artbear/1commands/releases) [![Build status](https://ci.appveyor.com/api/projects/status/ervidk37h9m0tgs5?svg=true)](https://ci.appveyor.com/project/artbear/1commands) -## Библиотека для упрощения работы c запуском различных приложений и командных файлов (cmd, bat, bash) из oscript. +## Библиотека для упрощения работы c запуском различных приложений и командных файлов (cmd, bat, bash, PowerShell и др.) из oscript. Позволяет выполнять рутинные операции по запуску приложений и командных файлов системы. @@ -30,7 +30,22 @@ КомандныйФайл.ДобавитьКоманду("@echo off"); КомандныйФайл.ДобавитьКоманду("oscript -version"); -Сообщить(КомандныйФайл.ПолучитьСодержимоеФайла()); +Сообщить(КомандныйФайл.ПолучитьТекстФайла()); + +КодВозврата = КомандныйФайл.Исполнить(); +Сообщить(КодВозврата); + +Сообщить(КомандныйФайл.ПолучитьВывод()); +``` +или запуск командного файла PowerShell +```bsl +КомандныйФайл = Новый КомандныйФайл; +КомандныйФайл.УстановитьПриложение("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"); +КомандныйФайл.Создать(,".ps1"); + +КомандныйФайл.ДобавитьКоманду("Get-Help"); + +Сообщить(КомандныйФайл.ПолучитьТекстФайла()); КодВозврата = КомандныйФайл.Исполнить(); Сообщить(КодВозврата); diff --git "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" index 21625e0..1475327 100644 --- "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" +++ "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" @@ -7,6 +7,7 @@ Перем ПутьКоманды; Перем Команда; Перем ТекстФайла; +Перем Приложение; Перем ЭтоWindows; Перем Лог; @@ -22,6 +23,15 @@ Возврат "oscript.lib.commands"; КонецФункции +// Установить путь к приложению. +// +// Параметры: +// ПутьПриложения - Путь приложения (Строка) +// +Процедура УстановитьПриложение(Знач ПутьПриложения) Экспорт + Приложение = ПутьПриложения; +КонецПроцедуры // УстановитьПриложение() + // Получить путь командного файла // // Возвращаемое значение: @@ -75,14 +85,19 @@ // Параметры: // Путь - Строка - путь создаваемого файла. Необязательное значение. // Если не задан, создается временный файл в каталоге временных файлов +// Расширение - Строка - расширение исполняемого командного файла. +// Если не задано, подставляется ".bat" для Windows или ".sh" для Linux. // // Возвращаемое значение: // Строка - Путь созданного файла // -Функция Создать(Знач Путь = "") Экспорт +Функция Создать(Знач Путь = "",Знач Расширение="") Экспорт + Если ПустаяСтрока(Расширение) Тогда + Расширение = ?(ЭтоWindows, ".bat", ".sh"); + КонецЕсли; Если ПустаяСтрока(Путь) Тогда - ПутьКоманды = ВременныеФайлы.НовоеИмяФайла(?(ЭтоWindows, ".bat", ".sh")); + ПутьКоманды = ВременныеФайлы.НовоеИмяФайла(Расширение); Лог.Отладка("КомандныйФайл: задаю временный путь командного файла <%1>.", ПутьКоманды); Иначе ПутьКоманды = Путь; @@ -125,7 +140,9 @@ Команда.УстановитьКодировкуВывода(КодировкаВывода); Команда.ПоказыватьВыводНемедленно(НемедленнныйВывод); - Если ЭтоWindows Тогда + Если НЕ ПустаяСтрока(Приложение) Тогда + СтрокаЗапуска = """%1"""; + ИначеЕсли ЭтоWindows Тогда Приложение = "cmd.exe"; СтрокаЗапуска = "/C ""%1"""; Иначе From fa9ceb779287b9c5b72a53e4a92e8ddbeb0a5a23 Mon Sep 17 00:00:00 2001 From: hpa <hpa@ts.ru> Date: Sun, 15 Oct 2017 10:40:28 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\265\320\244\320\260\320\271\320\273\321\213.os" | 11 ++++++++--- ...5\320\244\320\260\320\271\320\273\321\213.feature" | 2 +- readme.md | 2 +- ...21\213\320\271\320\244\320\260\320\271\320\273.os" | 9 +++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" index 3056ac4..6e986d7 100644 --- "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" +++ "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" @@ -35,11 +35,11 @@ //Я создаю командный файл Процедура ЯСоздаюКомандныйФайл() Экспорт - СоздатьФайл("",""); + СоздатьФайл(); КонецПроцедуры //Я создаю командный файл PowerShell "" ".ps1" -Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="",Знач Расширение="") Экспорт +Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="", Знач Расширение="") Экспорт СоздатьФайл(Путь,Расширение); КонецПроцедуры @@ -87,6 +87,11 @@ //Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" Процедура ЯУстанавливаюПриложениеЗапуска(Знач ПутьПриложения="") Экспорт + СистемнаяИнформация = Новый СистемнаяИнформация; + ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + Если НЕ ЭтоWindows Тогда + Возврат; + КонецЕсли; КомандныйФайл = Новый КомандныйФайл; КомандныйФайл.УстановитьПриложение(ПутьПриложения); БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); @@ -112,7 +117,7 @@ КонецПроцедуры -Процедура СоздатьФайл(Знач Путь="",Знач Расширение="") +Процедура СоздатьФайл(Знач Путь="", Знач Расширение="") КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); Если КомандныйФайл=Неопределено Тогда КомандныйФайл = Новый КомандныйФайл; diff --git "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" index 0e64b87..65461f9 100644 --- "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" +++ "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" @@ -12,7 +12,7 @@ Сценарий: Выполнение командного файла PowerShell Когда Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" И Я создаю командный файл PowerShell "" ".ps1" - И Я добавляю строку "echo PowerShell" в командный файл + И Я добавляю строку "Write-Host PowerShell" в командный файл И Я сообщаю содержимое командного файла И Я выполняю командный файл Тогда Вывод командного файла содержит "PowerShell" diff --git a/readme.md b/readme.md index 94afdc4..d1206eb 100644 --- a/readme.md +++ b/readme.md @@ -41,7 +41,7 @@ ```bsl КомандныйФайл = Новый КомандныйФайл; КомандныйФайл.УстановитьПриложение("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"); -КомандныйФайл.Создать(,".ps1"); +КомандныйФайл.Создать("",".ps1"); КомандныйФайл.ДобавитьКоманду("Get-Help"); diff --git "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" index 1475327..46d74ba 100644 --- "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" +++ "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273.os" @@ -27,6 +27,11 @@ // // Параметры: // ПутьПриложения - Путь приложения (Строка) +// Например для запуска скриптов PowerShell +// Для 64bit PowerShell если стоит 64 битная система или 32bit PowerShell, если стоит 32 битная система +// "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" +// Для 32bit PowerShell на 64 битных системах находится в папке: +// "C:\Windows\syswow64\Windowspowershell\v1.0\powershell.exe" // Процедура УстановитьПриложение(Знач ПутьПриложения) Экспорт Приложение = ПутьПриложения; @@ -91,7 +96,7 @@ // Возвращаемое значение: // Строка - Путь созданного файла // -Функция Создать(Знач Путь = "",Знач Расширение="") Экспорт +Функция Создать(Знач Путь = "", Знач Расширение="") Экспорт Если ПустаяСтрока(Расширение) Тогда Расширение = ?(ЭтоWindows, ".bat", ".sh"); @@ -140,7 +145,7 @@ Команда.УстановитьКодировкуВывода(КодировкаВывода); Команда.ПоказыватьВыводНемедленно(НемедленнныйВывод); - Если НЕ ПустаяСтрока(Приложение) Тогда + Если ЗначениеЗаполнено(Приложение) Тогда СтрокаЗапуска = """%1"""; ИначеЕсли ЭтоWindows Тогда Приложение = "cmd.exe"; From fcc8fb1112e1f57315b9a2b0b7dec938eac46ebf Mon Sep 17 00:00:00 2001 From: hpa <hpa@ts.ru> Date: Sun, 15 Oct 2017 23:31:31 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81=D0=BA=20=D1=88=D0=B0?= =?UTF-8?q?=D0=B3=D0=BE=D0=B2=20=D0=BF=D0=BE=20=D0=9B=D0=B8=D0=BD=D1=83?= =?UTF-8?q?=D0=BA=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\244\320\260\320\271\320\273\321\213.os" | 61 ++++++++++++++++--- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" index 6e986d7..a2d2bf6 100644 --- "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" +++ "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" @@ -2,6 +2,7 @@ #Использовать "../.." Перем БДД; //контекст фреймворка 1bdd +Перем ЭтоWindows; // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт @@ -40,11 +41,19 @@ //Я создаю командный файл PowerShell "" ".ps1" Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="", Знач Расширение="") Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; + СоздатьФайл(Путь,Расширение); КонецПроцедуры //я добавляю строку "echo командный файл" в командный файл Процедура ЯДобавляюСтрокуВКомандныйФайл(Знач СтрокаКоманды) Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; + КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); КомандныйФайл.ДобавитьКоманду(СтрокаКоманды); @@ -52,6 +61,10 @@ //Я выполняю командный файл Процедура ЯВыполняюКомандныйФайл() Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; + КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); КомандныйФайл.Исполнить(); @@ -59,11 +72,18 @@ //Я сообщаю содержимое файла "ИмяФайла" Процедура ЯСообщаюСодержимоеФайла(Знач ИмяФайла) Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; + ВывестиТекстФайла(ИмяФайла); КонецПроцедуры //Я сообщаю содержимое командного файла Процедура ЯСообщаюСодержимоеКомандногоФайла() Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); ТекстФайла = КомандныйФайл.ПолучитьТекстФайла(); @@ -72,6 +92,10 @@ //Вывод командного файла содержит "командный файл" Процедура ВыводКомандногоФайлаСодержит(Знач ОжидаемыйВыводКоманды) Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; + КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); ВыводКоманды = КомандныйФайл.ПолучитьВывод(); @@ -80,6 +104,10 @@ //Код возврата командного файла равен 0 Процедура КодВозвратаКомандногоФайлаРавен(Знач ОжидаемыйКодВозврата) Экспорт + Если ПропускаюШаг() Тогда + Возврат; + КонецЕсли; + КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); Ожидаем.Что(КомандныйФайл.ПолучитьКодВозврата(), "Код возврата").Равно(ОжидаемыйКодВозврата); @@ -87,32 +115,34 @@ //Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" Процедура ЯУстанавливаюПриложениеЗапуска(Знач ПутьПриложения="") Экспорт - СистемнаяИнформация = Новый СистемнаяИнформация; - ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; - Если НЕ ЭтоWindows Тогда + Если ПропускаюШаг() Тогда Возврат; КонецЕсли; - КомандныйФайл = Новый КомандныйФайл; + + КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); + Если КомандныйФайл=Неопределено Тогда + КомандныйФайл = Новый КомандныйФайл; + КонецЕсли; КомандныйФайл.УстановитьПриложение(ПутьПриложения); БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); КонецПроцедуры Процедура ВывестиТекстФайла(Знач ИмяФайла, Знач Кодировка = Неопределено) - + Файл = Новый Файл(ИмяФайла); Если НЕ Файл.Существует() Тогда Возврат; КонецЕсли; - + Если Кодировка = Неопределено Тогда Кодировка = "utf-8"; КонецЕсли; - + ЧТ = Новый ЧтениеТекста(ИмяФайла, Кодировка); СтрокаФайла = ЧТ.Прочитать(); ЧТ.Закрыть(); - + Сообщить(СтрокаФайла); КонецПроцедуры @@ -127,5 +157,16 @@ БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); КонецПроцедуры - - +Функция ПропускаюШаг() Экспорт + Если НЕ ЗначениеЗаполнено(ЭтоWindows) Тогда + СистемнаяИнформация = Новый СистемнаяИнформация; + ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; + КонецЕсли; + + Если НЕ ЭтоWindows Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); + КонецЕсли; + + Возврат НЕ ЭтоWindows; + +КонецФункции // ЭтоWindows() From 8f7cc82816e2c3c223c2a72ae39a89f1f0b4d86d Mon Sep 17 00:00:00 2001 From: hpa <hpa@ts.ru> Date: Mon, 16 Oct 2017 10:44:33 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=88=D0=B0=D0=B3=D0=B0=20=D0=B2=20=D0=9B=D0=B8?= =?UTF-8?q?=D0=BD=D1=83=D0=BA=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\244\320\260\320\271\320\273\321\213.os" | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" index a2d2bf6..4a4c252 100644 --- "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" +++ "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" @@ -41,7 +41,7 @@ //Я создаю командный файл PowerShell "" ".ps1" Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="", Знач Расширение="") Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -50,7 +50,7 @@ //я добавляю строку "echo командный файл" в командный файл Процедура ЯДобавляюСтрокуВКомандныйФайл(Знач СтрокаКоманды) Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -61,7 +61,7 @@ //Я выполняю командный файл Процедура ЯВыполняюКомандныйФайл() Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -72,7 +72,7 @@ //Я сообщаю содержимое файла "ИмяФайла" Процедура ЯСообщаюСодержимоеФайла(Знач ИмяФайла) Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -81,7 +81,7 @@ //Я сообщаю содержимое командного файла Процедура ЯСообщаюСодержимоеКомандногоФайла() Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); @@ -92,7 +92,7 @@ //Вывод командного файла содержит "командный файл" Процедура ВыводКомандногоФайлаСодержит(Знач ОжидаемыйВыводКоманды) Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -104,7 +104,7 @@ //Код возврата командного файла равен 0 Процедура КодВозвратаКомандногоФайлаРавен(Знач ОжидаемыйКодВозврата) Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -115,7 +115,7 @@ //Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" Процедура ЯУстанавливаюПриложениеЗапуска(Знач ПутьПриложения="") Экспорт - Если ПропускаюШаг() Тогда + Если ПропускаюШагВЛинукс() Тогда Возврат; КонецЕсли; @@ -157,7 +157,7 @@ БДД.СохранитьВКонтекст("КомандныйФайл", КомандныйФайл); КонецПроцедуры -Функция ПропускаюШаг() Экспорт +Функция ПропускаюШагВЛинукс() Если НЕ ЗначениеЗаполнено(ЭтоWindows) Тогда СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; From 4617e7a0d82c5ef8cbe0ca81dc2e65bd6fd31232 Mon Sep 17 00:00:00 2001 From: hpa <hpa@ts.ru> Date: Mon, 16 Oct 2017 12:12:23 +0300 Subject: [PATCH 5/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D1=88=D0=B0=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D0=9B=D0=B8=D0=BD=D1=83=D0=BA=D1=81=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D1=84=D0=B8=D1=87=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\244\320\260\320\271\320\273\321\213.os" | 32 ++++++++++++++----- ...4\320\260\320\271\320\273\321\213.feature" | 5 +++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" index 4a4c252..1dc2cf0 100644 --- "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" +++ "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" @@ -3,6 +3,7 @@ Перем БДД; //контекст фреймворка 1bdd Перем ЭтоWindows; +Перем ПропускаюВЛинукс; // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт @@ -18,6 +19,8 @@ ВсеШаги.Добавить("ВыводКомандногоФайлаСодержит"); ВсеШаги.Добавить("КодВозвратаКомандногоФайлаРавен"); ВсеШаги.Добавить("ЯУстанавливаюПриложениеЗапуска"); + ВсеШаги.Добавить("ЯПропускаюЭтотСценарийВЛинукс"); + ВсеШаги.Добавить("ЯНЕПропускаюЭтотСценарийВЛинукс"); Возврат ВсеШаги; КонецФункции @@ -39,9 +42,20 @@ СоздатьФайл(); КонецПроцедуры +// Я пропускаю этот сценарий в Линукс +Процедура ЯПропускаюЭтотСценарийВЛинукс() Экспорт + ПропускаюВЛинукс = Истина; +КонецПроцедуры + +//Я не пропускаю этот сценарий в Линукс +Процедура ЯНЕПропускаюЭтотСценарийВЛинукс() Экспорт + ПропускаюВЛинукс = Ложь; +КонецПроцедуры + //Я создаю командный файл PowerShell "" ".ps1" Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="", Знач Расширение="") Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -51,6 +65,7 @@ //я добавляю строку "echo командный файл" в командный файл Процедура ЯДобавляюСтрокуВКомандныйФайл(Знач СтрокаКоманды) Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -62,6 +77,7 @@ //Я выполняю командный файл Процедура ЯВыполняюКомандныйФайл() Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -73,6 +89,7 @@ //Я сообщаю содержимое файла "ИмяФайла" Процедура ЯСообщаюСодержимоеФайла(Знач ИмяФайла) Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -82,6 +99,7 @@ //Я сообщаю содержимое командного файла Процедура ЯСообщаюСодержимоеКомандногоФайла() Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; КомандныйФайл = БДД.ПолучитьИзКонтекста("КомандныйФайл"); @@ -93,6 +111,7 @@ //Вывод командного файла содержит "командный файл" Процедура ВыводКомандногоФайлаСодержит(Знач ОжидаемыйВыводКоманды) Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -105,6 +124,7 @@ //Код возврата командного файла равен 0 Процедура КодВозвратаКомандногоФайлаРавен(Знач ОжидаемыйКодВозврата) Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -116,6 +136,7 @@ //Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" Процедура ЯУстанавливаюПриложениеЗапуска(Знач ПутьПриложения="") Экспорт Если ПропускаюШагВЛинукс() Тогда + БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); Возврат; КонецЕсли; @@ -158,15 +179,10 @@ КонецПроцедуры Функция ПропускаюШагВЛинукс() - Если НЕ ЗначениеЗаполнено(ЭтоWindows) Тогда + Если ЭтоWindows = Неопределено Тогда СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; КонецЕсли; - - Если НЕ ЭтоWindows Тогда - БДД.ВыполнитьШаг("Пропускаю шаг в Linux"); - КонецЕсли; - - Возврат НЕ ЭтоWindows; - + + Возврат ПропускаюВЛинукс И НЕ ЭтоWindows; КонецФункции // ЭтоWindows() diff --git "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" index 65461f9..a862471 100644 --- "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" +++ "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" @@ -8,6 +8,7 @@ Контекст: Отключение отладки в логах Допустим Я выключаю отладку лога с именем "oscript.lib.commands" + И Я пропускаю этот сценарий в Линукс Сценарий: Выполнение командного файла PowerShell Когда Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" @@ -18,6 +19,10 @@ Тогда Вывод командного файла содержит "PowerShell" И Код возврата командного файла равен 0 +Контекст: Отключение отладки в логах + Допустим Я выключаю отладку лога с именем "oscript.lib.commands" + И Я не пропускаю этот сценарий в Линукс + Сценарий: Выполнение командного файла Когда Я создаю командный файл И Я добавляю строку "echo command file" в командный файл From da6b8fad56f39f644385b402579a1a4f17561bc9 Mon Sep 17 00:00:00 2001 From: hpa <hpa@ts.ru> Date: Mon, 16 Oct 2017 14:39:45 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D1=84=D0=B8=D1=87=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...13\320\265\320\244\320\260\320\271\320\273\321\213.os" | 8 +------- ...0\265\320\244\320\260\320\271\320\273\321\213.feature" | 8 ++------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" index 1dc2cf0..8ea8554 100644 --- "a/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" +++ "b/features/step_definitions/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.os" @@ -20,7 +20,6 @@ ВсеШаги.Добавить("КодВозвратаКомандногоФайлаРавен"); ВсеШаги.Добавить("ЯУстанавливаюПриложениеЗапуска"); ВсеШаги.Добавить("ЯПропускаюЭтотСценарийВЛинукс"); - ВсеШаги.Добавить("ЯНЕПропускаюЭтотСценарийВЛинукс"); Возврат ВсеШаги; КонецФункции @@ -29,7 +28,7 @@ // Процедура выполняется перед запуском каждого сценария Процедура ПередЗапускомСценария(Знач Узел) Экспорт - + ПропускаюВЛинукс = Ложь; КонецПроцедуры // Процедура выполняется после завершения каждого сценария @@ -47,11 +46,6 @@ ПропускаюВЛинукс = Истина; КонецПроцедуры -//Я не пропускаю этот сценарий в Линукс -Процедура ЯНЕПропускаюЭтотСценарийВЛинукс() Экспорт - ПропускаюВЛинукс = Ложь; -КонецПроцедуры - //Я создаю командный файл PowerShell "" ".ps1" Процедура ЯСоздаюКомандныйФайлPowerShell(Знач Путь="", Знач Расширение="") Экспорт Если ПропускаюШагВЛинукс() Тогда diff --git "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" index a862471..8ad0dfb 100644 --- "a/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" +++ "b/features/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213.feature" @@ -8,10 +8,10 @@ Контекст: Отключение отладки в логах Допустим Я выключаю отладку лога с именем "oscript.lib.commands" - И Я пропускаю этот сценарий в Линукс Сценарий: Выполнение командного файла PowerShell - Когда Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" + Когда Я пропускаю этот сценарий в Линукс + И Я устанавливаю приложение запуска "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" И Я создаю командный файл PowerShell "" ".ps1" И Я добавляю строку "Write-Host PowerShell" в командный файл И Я сообщаю содержимое командного файла @@ -19,10 +19,6 @@ Тогда Вывод командного файла содержит "PowerShell" И Код возврата командного файла равен 0 -Контекст: Отключение отладки в логах - Допустим Я выключаю отладку лога с именем "oscript.lib.commands" - И Я не пропускаю этот сценарий в Линукс - Сценарий: Выполнение командного файла Когда Я создаю командный файл И Я добавляю строку "echo command file" в командный файл