Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: AskParam - диалог запроса параметров командной строки 
Author Message
Вахмурка



PostPosted: Tue Apr 17, 2018 16:10    Post subject: Reply with quote

Вот эта строка не работает:
 плохо
В первом окне я выбираю 1251 (понятное дело, текущий файл должен иметь эту кодировку), потом - все равно (у меня "Unicode (UTF-16LE)"). Перекодировки не происходит, исходный файл открывается в EmEditor'е.
Вот эта строка:
 хорошо
работает отлично - создается перекодированный файл.
Разница в строках со словом "Cyrillic" во втором окне.
Твоя строка (первая) у меня не делает ничего.

Добавлено
Quote:
Проверь у себя комстроку AskParam, когда нажимаешь кнопку и он показывает окно
Проверил. Не через ProcessHacker, правда, а через ShowCmdLine, но реально несколько символов (около 20) из конца имени пропадают: усекается часть пути, до имени файла дело не доходит.

Еще добавлено
Еще бы твоя строка что-то делала, если у нее хвост тоже усекается.
Попробуй искусственно "нарастить" длину строки за счет многократного указания одних и тех же ключей.

Еще немного поэкпериментировал. Вот результаты:
1) Если строка усекается "на этапе" имени-источника (%P%O.%E): перекодировка не происходит, а файл-результат с усеченным именем EmEditor предлагает открыть и в случае согласия юзверя создает пустой файл.
2) Если усечение происходит между %P%O.%E и %P%O.%%2, то есть на этапе ключей, то результат вообще может быть каким угодно в зависимости от того, какая часть какого ключа пропала. Как правило, не происходит ничего. Иногда - исходный файл просто открывается в EmEditor'е.
3) Если же усекается файл-результат, то не происходит ничего.

И еще добавлено
Создал суперлайт-версию для тестирования:
Code:
cmd=%COMMANDER_PATH%\AskParam\AskParam64.exe
param=/u"Cyrillic (windows-1251): 1251" /p(h) /u"Unicode (UTF-16LE): 65537" /p(h) /u"With Unicode signature (BOM): +" /p(h) "f:\Utils\Text\EmEditor\EmEditor.exe" "%P%O.%E" /nr /sp /cp %%1 /cps %%2 /ss%%3 /sa "%P%O.%%2"
Исходная версия рабочая.
Теперь ставим курсор внутрь любого ключа (между /u и /p) и тупо бьем по клаве. Когда суммарная длина строки параметров оказывается около 1000 символов, команда работать перестает, а строка усекается с конца.
Отсюда вывод - дело именно в длине всей строки, а не в числе ключей и уж тем более в их содержании.
Вот такие пироги...
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
View user's profile Send private message Send e-mail Visit poster's website


Powered by phpBB © 2001, 2005 phpBB Group