Автокликер Clickermann :: Форум

Основной раздел => Ошибки => Topic started by: dramster on June 19, 2018, 12:08:48 PM

Title: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: dramster on June 19, 2018, 12:08:48 PM
демонстрационный код:
Code: (clickermann) [Select]
STRWRITELN ("test.bat", "pause", 1) //не выполняется
EXECUTE ("test.bat")
wait(2)

STRWRITELN ("test.bat", "pause") //выполняется, скрин ниже
EXECUTE ("test.bat")
halt
(https://i.imgur.com/GV0sVgJ.png)

в батнике:
Code: [Select]
pause
pause

получается, что к первой строке дописывается какаято ересь, и она игнорируется. в 4.13.010b вроеде еще работало правильно.
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Vint on June 19, 2018, 02:04:27 PM
получается, что к первой строке дописывается какаято ересь, и она игнорируется. в 4.13.010b вроеде еще работало правильно.
Эта ересь называется BOM - маркер последовательности байтов.
Вот мы здесь затрагивали переход на UTF-8 и BOM в частности.
http://crapware.aidf.org/forum/index.php?topic=356.msg26754#msg26754

К несчастью bat кажется не понимает BOM и соответственно метку не игнорирует.
Можно попробовать создать файл заранее в нужной кодировке, не знаю при записи поменяет или нет.
Есть ещё мысль первой строкой заносить не команду, а комментарий... хотя нет, не запустится.

Ну и простые команды/серии команд можно запускать напрямую не записывая в батник. Всегда так делаю если возможно.
Нельзя напрямую только сложные батники с циклами и сменой кодировок для ввода-вывода. Ну может ещё для работы с параметрами, тут хз.
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Атеист on June 19, 2018, 02:08:02 PM
Похожая проблема, хотя вроде не смертельная.
Code: (clickermann) [Select]
TFCLEAR("config.ini", 0) // после очистки меняет кодировку файла ANSI на UTF-8
INIWRITE("config.ini", "Параметр", "Значение", "Секция") // делает запись, или создает новый файл в кодировке ANSI
// Если файл "config.ini" очистить, не удаляя его с диска, то сделать запись кирилицей через INIWRITE() уже не получится
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Vint on June 19, 2018, 02:32:42 PM
P.S. при записи меняет кодировку, поэтому предварительное создание не катит.

P.P.S. нашёл костыль. Будем писать в файл не кликером, а самими cmd командами.
Code: (clickermann) [Select]
// добавляем строку в файл (ели создаём с 1 строкой, просто >)
EXECUTE("cmd.exe", "/C Echo pause >> test.bat")
// теперь вызываем
EXECUTE ("test.bat")
Да здравствуют новые костыли, старые уже надоели.

Всё это конечно, чаще не нужно и можно просто вызывать команды напрямую (надеюсь pause это пример?).
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: dramster on June 19, 2018, 04:59:16 PM

Всё это конечно, чаще не нужно и можно просто вызывать команды напрямую (надеюсь pause это пример?).
конечно пример. сення никак не мог понять че не работает... вышел из положения вот таким кастылем:
Code: (clickermann) [Select]
STRWRITELN ("test.bat", "1", 1)   //пишем лишьбы что в файл .bat
STRWRITELN ("test.bat", "clip < text.txt")  //помещаем содержимое файла в буфер обмена
EXECUTE ("test.bat")
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Johnny on June 19, 2018, 06:11:59 PM
таки обратной совместимости прямо вообще со всем не вышло...
в принципе тут решений несколько. либо до кучи прилепить еще и команду перекодирования текстовых файлов (имхо худший варик). либо приделать какой нить костыль внутренний, который ИСКЛЮЧИТЕЛЬНО батники будет сохранять в ANSI (имхо глупейший варик). либо реализовать в смамом кликере, то, что вам надо от батников этих. а это я полагаю в 99% примитивные файловые операции. в принципе ввиду отсутствия идей была мысль прикрутить этот пак команд, шоб прям воще все можно было делать из км.

ну а так да. в первую строчку любую фигню пишите и он просто проскочет и пойдет дальше
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Vint on June 19, 2018, 06:21:09 PM
А, ну и хрен с ним.
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Vint on June 26, 2018, 10:32:17 AM
А вот и второй наступивший
http://crapware.aidf.org/forum/index.php?topic=4059.0

Только не на bat, а уже на ini.
Говорил я, что с этим BOM намучаемся, какой бы стандарт он не был.

Теперь при команде читающей ini нужно прикрутить отпиливание BOM если он есть. Записывающей - не знаю.
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Johnny on June 26, 2018, 04:38:08 PM
а вот это не ко мне. ну ко мне конечно, но не ко мне. это к разрабам RAD Studio из 2012 года
я уже говорил что в ini поддержки юникода пока нет. ни с бом ни без него. ini файлы тока в ansi. кликер их выплевывает в ansi так же.

уверен в более новых студиях проблема давно решена
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: regint on August 07, 2018, 10:43:17 PM
таки обратной совместимости прямо вообще со всем не вышло...
в принципе тут решений несколько. либо до кучи прилепить еще и команду перекодирования текстовых файлов (имхо худший варик). либо приделать какой нить костыль внутренний, который ИСКЛЮЧИТЕЛЬНО батники будет сохранять в ANSI (имхо глупейший варик). либо реализовать в смамом кликере, то, что вам надо от батников этих. а это я полагаю в 99% примитивные файловые операции. в принципе ввиду отсутствия идей была мысль прикрутить этот пак команд, шоб прям воще все можно было делать из км.

ну а так да. в первую строчку любую фигню пишите и он просто проскочет и пойдет дальше

да, если часть команд CMD будет реализована в самом кликере будет очень удобно.
Вот вариант, когда это не поможет таки:
Code: [Select]
%adb% shell input text I111II11
Ввода текста по ADB в программе в Bluestacks

Команда препроцессора, которая сообщает в какой кодировке будет сохраняться файл? Просто функция переключающая кодировку, в которой будет сохраняться файл?
Кстати в windows 7 как минимум нормально выполняются BATники с UTF-8 без BOM -> команда препроцессора которая меняет кодировку на "UTF-8 без BOM"

Немножко сумбурно, сорян! ::)
Title: Re: Баг при создании .bat и последующем вызове его. Где-то начиная с v.4.013b
Post by: Vint on August 14, 2018, 12:09:41 AM
Они и в XP нормально выполняются, если без BOM.
Другое дело, если нужно в консоль писать на русском, тогда только 866 иначе кракозябры в выводе.