помогло %2B... из сниффера это не работало а из баса прошло. Спасибо
Баг "Запустить Процесс" кириллица ломает консоль
-
Доброго времени суток. Столкнулся с багом который хочу показать примере.
Создадим две переменные в рабочем окне экшена "Управление Процессами => Запустить Процесс"
@echo off set variable1=abcd set variable2=абвгдПосле сохранения и запуска данного действия, в переменной вывода процесса с ошибками [[PROCESS_ERROR_OUTPUT]] мы увидим такую ошибку:
"'ariable1' is not recognized as an internal or external command, operable program or batch file. 'ariable2' is not recognized as an internal or external command, operable program or batch file."Складывается ощущение, что кто-то "съел" первые 5 символов в начале каждой строки нашей команды и она не дошла до интерпретатора командной строки в первоначальном виде.
Хорошо, тогда добавим 5 пробелов в начало каждой строки для проверки:
@echo off set variable1=abcd set variable2=абвгдДействительно, ошибка исчезла. Приводит к этой ошибке строка "set variable2=абвгд", а именно присутствие кириллических символов. Но главное то, что чем больше символов в строке, тем больше будет "cъедено" символов в начале строки. В крупных командных файлах это доставляет много проблем, или даже делает их работу невозможной (как в моём случае).
Смена кодировок не помогла.Прошу проверить, и ответить проявится ли данная ошибка у вас.
Не хотелось бы лишний раз тревожить уважаемого @support но проблема очень похожа на баг.
Спасибо за потраченное время.Версия BAS: 22.6.5
Windows 10 Enterprise LTSB (x86/x64) 1607 -
@KONKORD said in Баг "Запустить Процесс" кириллица ломает консоль:
Прошу проверить, и ответить проявится ли данная ошибка у вас.
Не хотелось бы лишний раз тревожить уважаемого @support но проблема очень похожа на баг.
Спасибо за потраченное время.Наконец то у меня дошли руки до этого бага.
Ошибка кроется в символе переноса строки. Например, что бы повторить баг, достаточно использовать любой код с переносом строк и содержащий кирилицу:echo один echo два echo три
Если открыть созданный BAS'ом bat файл, то всё выглядит правильно:

но выполнение этого bat файла так же завершится ошибкой:

Причём если создать точно такой же файл руками, то он выполнится корректно:


А теперь разгадка, что же именно здесь не так:
bat файл BAS'a использует для переноса строки символ
\n
когда как текстовый редактор ставит
\r\n
Всё
:D
Что бы избежать ошибки достаточно в ручную заменить переносы строки в коде на\r\n:echo один\r\necho два\r\necho трии выполнить полученный код


Для наглядности:
Тестовый скрипт 779.xml
Временный bat файл BAS temp_7uwM4Oj6gT.bat
bat файл созданный руками 1.bat -
@DoctorKrolic said in Баг "Запустить Процесс" кириллица ломает консоль:
@Fox А это в следующей версии пофиксят? Тут "работы" для фикса - пара минут...
Не знаю пока
-
@DoctorKrolic said in Баг "Запустить Процесс" кириллица ломает консоль:
@Fox А это в следующей версии пофиксят? Тут "работы" для фикса - пара минут...
пофиксили