From 0a4bd03f0bdf10a1e9e7159d5f0f49f3deeba692 Mon Sep 17 00:00:00 2001 From: Alexander Kuntashov Date: Tue, 27 Oct 2020 01:03:13 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8B=D0=B2=D0=B0=D0=B5=D0=BC=20=D0=B2=D1=8B=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=BD=D0=B5=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=20=D0=BE=D1=82=20=D0=BD=D0=B0=D0=BB=D0=B8=D1=87=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Вывод выполнения консольного приложения возвращался независимо от того, выполнилось приложение с ошибками или нет. Closes #799 --- ...5\320\275\320\270\321\217\320\274\320\270.xml" | 8 ++++---- .../Ext/ObjectModule.bsl" | 15 +++++++++++---- .../Ext/Form/Module.bsl" | 13 ++++++++++--- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270.xml" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270.xml" index 9a950f9f6..8f280fd7c 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270.xml" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270.xml" @@ -1,14 +1,14 @@  - + c3831ec8-d8d5-4f93-8a22-f9bfae07327f - 908d0aaf-e4ec-4668-8d14-3e8075d222fd + d5c45041-d9eb-4617-ad45-c5a6420d1f6b - 85629dd2-6be4-49c6-9a69-13411102aa57 - 3fdd55c8-e92e-4f99-8b28-3ba8957b50ab + 27221752-6c79-4c7a-b9f2-2f95bc97f37b + c05f62ba-2037-4948-b0a3-2867a9e7093b diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" index bce312b8c..b5a833dab 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" @@ -101,13 +101,15 @@ КодВозврата = 0; ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); - ВремКоманда = ТекстКоманды + " > """ + ИмяФайлаВывода + """"; + + // `2>&1` редиректит stderr в stdout, чтобы весь вывод собрать в одном файле. + ВремКоманда = ТекстКоманды + "> """ + ИмяФайлаВывода + """ 2>&1"; Попытка ЗапуститьПриложение(ВремКоманда,, ЖдатьОкончания, КодВозврата); - - Если КодВозврата = 0 Тогда + + Если ФайлСуществует(ИмяФайлаВывода) Тогда КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8); КонецЕсли; @@ -159,7 +161,7 @@ Рез = WshShell.Run(ИмяВременногоФайлаКоманды, 0, ?(ЖдатьОкончания, -1, 0)); - Если Рез = 0 Тогда + Если ФайлСуществует(ИмяФайлаВывода) Тогда // команда выполнилась успешно КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8); КонецЕсли; @@ -478,4 +480,9 @@ КонецПроцедуры +Функция ФайлСуществует(Путь) + Файл = Новый Файл(Путь); + Возврат Файл.Существует() И Файл.ЭтоФайл(); +КонецФункции + // } Helpers \ No newline at end of file diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index f7b4250d6..6343c1636 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -117,13 +117,15 @@ КодВозврата = 0; ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); - ВремКоманда = ТекстКоманды + " > """ + ИмяФайлаВывода + """"; + + // `2>&1` редиректит stderr в stdout, чтобы весь вывод собрать в одном файле. + ВремКоманда = ТекстКоманды + "> """ + ИмяФайлаВывода + """ 2>&1"; Попытка ЗапуститьПриложение(ВремКоманда,, ЖдатьОкончания, КодВозврата); - Если КодВозврата = 0 Тогда + Если ФайлСуществует(ИмяФайлаВывода) Тогда КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8); КонецЕсли; @@ -175,7 +177,7 @@ Рез = WshShell.Run(ИмяВременногоФайлаКоманды, 0, ?(ЖдатьОкончания, -1, 0)); - Если Рез = 0 Тогда + Если ФайлСуществует(ИмяФайлаВывода) Тогда // команда выполнилась успешно КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8); КонецЕсли; @@ -511,4 +513,9 @@ КонецПроцедуры +Функция ФайлСуществует(Путь) + Файл = Новый Файл(Путь); + Возврат Файл.Существует() И Файл.ЭтоФайл(); +КонецФункции + // } Helpers From 6e8b9a0e60681afaf074ef742d577e25e5b28cfb Mon Sep 17 00:00:00 2001 From: Alexander Kuntashov Date: Tue, 27 Oct 2020 10:01:37 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=A0=D0=B5=D0=B4=D0=B8=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=20stderr=20>=20stdout=20=D0=B4=D0=BB=D1=8F=20Windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/ObjectModule.bsl" | 2 +- .../Ext/Form/Module.bsl" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" index b5a833dab..60e85e250 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" @@ -150,7 +150,7 @@ КонецЕсли; ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); - ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """"; + ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """ 2>&1"; КонтекстЯдра.Отладка(ТекстКоманды); //КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды); diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 6343c1636..9227c68e1 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -166,7 +166,7 @@ КонецЕсли; ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); - ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """"; + ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """ 2>&1"; КонтекстЯдра.Отладка(ТекстКоманды); //КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды); From 5586e992de0597979bb351c4408fecd5005af228 Mon Sep 17 00:00:00 2001 From: Alexander Kuntashov Date: Thu, 19 Nov 2020 09:46:02 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20=D0=B2=20Windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/ObjectModule.bsl" | 2 +- .../Ext/Form/Module.bsl" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" index 60e85e250..7b8d53b12 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" @@ -150,7 +150,7 @@ КонецЕсли; ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); - ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """ 2>&1"; + ИмяВременногоФайлаКоманды = "cmd /c """"""" + ИмяВременногоФайлаКоманды + """"" > """"" + ИмяФайлаВывода + """"" 2>&1 "" "; КонтекстЯдра.Отладка(ТекстКоманды); //КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды); diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 9227c68e1..17111cfd2 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -166,7 +166,7 @@ КонецЕсли; ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); - ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """ 2>&1"; + ИмяВременногоФайлаКоманды = "cmd /c """"""" + ИмяВременногоФайлаКоманды + """"" > """"" + ИмяФайлаВывода + """"" 2>&1 "" "; КонтекстЯдра.Отладка(ТекстКоманды); //КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды);