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" в командный файл