Страница 19 из 20

Добавлено: Сб фев 11, 2017 20:32
MVV
Добавил ключ /i для установки иконки.

AskParam beta 160

Добавлено: Вт апр 17, 2018 11:06
Вахмурка
Сооружал команду для перекодировки файлов через EmEditor. Получилось вот что:
em-команда

Код: Выделить всё

[em_test]
cmd=%COMMANDER_PATH%\AskParam\AskParam64.exe
param=/c"Source Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /t"Binary (ASCII View): 65539" /t"Binary (Hexadecimal View): 65540" /t"Cyrillic (cp866): 866" /t"Cyrillic (iso-8859-5): 28595" /t"Cyrillic (koi8-r): 20866" /t"Cyrillic (koi8-ru): 21866" /t"Detects all encodings: 1048576" /t"Detects Unicode signature (BOM): 131072" /t"Detects UTF-8: 262144" /t"Detects HTML/XML Charset: 524288" /p(h) /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) %%COMMANDER_DRIVE%%\Utils\Text\EmEditor\EmEditor.exe "%P%O.%E" /nr /sp /cp %%1 /cps %%2 /ss%%3 /sa "%P%O.%%2"
Длина строки параметров около 1000 символов, то есть заведомо меньше, чем 32767. Тестил на пути с пробелами и кириллицей, а именно

Код: Выделить всё

f:\Users\Debath\AppData\Local\Temp\явдл фукдл е уц дел
Так вот, выходит, что при длинной строке параметров ее конец откусывается, и в программу передается

Код: Выделить всё

...Local\Te.%2
Стоит же удалить любой из ключей первого окна, как путь к файлу-результату входит полностью. Полная длина пути к файлу 70 символов, то есть далеко не 256.
У меня есть другая em-команда с AskParam, так там длина строки параметров 1968 символов - вдвое больше, чем здесь, и там все работает. Правда, там нет параметров типа %Р - только %1.
Насколько я понимаю, EmEditor у тебя установлен

Добавлено: Вт апр 17, 2018 14:49
MVV
У меня вроде работает:

Код: Выделить всё

[em_test] 
cmd=%COMMANDER_PATH%\Addons\AskParam\AskParam64.exe
param=/c"Source Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /t"Binary (ASCII View): 65539" /t"Binary (Hexadecimal View): 65540" /t"Cyrillic (cp866): 866" /t"Cyrillic (iso-8859-5): 28595" /t"Cyrillic (koi8-r): 20866" /t"Cyrillic (koi8-ru): 21866" /t"Detects all encodings: 1048576" /t"Detects Unicode signature (BOM): 131072" /t"Detects UTF-8: 262144" /t"Detects HTML/XML Charset: 524288" /p(h) /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) "D:\Program Files\EmEditor\EmEditor.exe" "%P%O.%E" /nr /sp /cp %%1 /cps %%2 /ss%%3 /sa "%P%O.%%2"
AskParam получает такую комстроку (смотрю в ProcessHacker):

Код: Выделить всё

"D:\TOTALCMD\Addons\AskParam\AskParam64.exe" /cSource Encoding " /uCyrillic (windows-1251): 1251 " /tSystem Default Encoding: 65536 " /tUnicode (UTF-16LE): 65537 " /tUnicode (UTF-16BE): 65538 " /tUnicode (UTF-8): 65001 " /tUnicode (UTF-7): 65000 " /tBinary (ASCII View): 65539 " /tBinary (Hexadecimal View): 65540 " /tCyrillic (cp866): 866 " /tCyrillic (iso-8859-5): 28595 " /tCyrillic (koi8-r): 20866 " /tCyrillic (koi8-ru): 21866 " /tDetects all encodings: 1048576 " /tDetects Unicode signature (BOM): 131072 " /tDetects UTF-8: 262144 " /tDetects HTML/XML Charset: 524288 " /p(h  /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) "D:\Program Files\EmEditor\EmEditor.exe" "D:\Users\Debath\AppData\Local\Temp\явдл фукдл е уц дел\file.txt" /nr /sp /cp %1 /cps %2 /ss%3 /sa "D:\Users\Debath\AppData\Local\Temp\явдл фукдл е у.%2"
EmEditor получает такую комстроку (чтобы успеть её увидеть, можно попробовать перекодировать файл в UTF-16 без BOM из 1251 в UTF-16 - тогда EmEditor покажет сообщение о нулевых символах в файле):

Код: Выделить всё

"D:\Program Files\EmEditor\EmEditor.exe" "D:\Users\Debath\AppData\Local\Temp\явдл фукдл е уц дел\file.txt" /nr /sp /cp 1251 /cps 65537 /ss+ /sa "D:\Users\Debath\AppData\Local\Temp\явдл фукдл е у.65537"
Проверь у себя комстроку AskParam, когда нажимаешь кнопку и он показывает окно.

Добавлено: Вт апр 17, 2018 15:10
Вахмурка
Вот эта строка не работает:
плохо

Код: Выделить всё

param=/c"Source Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /t"Binary (ASCII View): 65539" /t"Cyrillic (iso-8859-5): 28595" /t"Cyrillic (koi8-r): 20866" /t"Cyrillic (koi8-ru): 21866" /t"Detects all encodings: 1048576" /t"Detects Unicode signature (BOM): 131072" /t"Detects UTF-8: 262144" /t"Detects HTML/XML Charset: 524288" /p(h) /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /t"Cyrillic (koi8-ru): 21866" /t"Cyrillic (koi8-r): 20866" /t"Cyrillic (iso-8859-5): 28595" /t"Cyrillic (cp866): 866" /t"Binary (Hexadecimal View): 65540" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) %%COMMANDER_DRIVE%%\Utils\Text\EmEditor\EmEditor.exe "%P%O.%E" /nr /sp /cp %%1 /cps %%2 /ss%%3 /sa "%P%O.%%2"
В первом окне я выбираю 1251 (понятное дело, текущий файл должен иметь эту кодировку), потом - все равно (у меня "Unicode (UTF-16LE)"). Перекодировки не происходит, исходный файл открывается в EmEditor'е.
Вот эта строка:
хорошо

Код: Выделить всё

param=/c"Source Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /t"Binary (ASCII View): 65539" /t"Cyrillic (iso-8859-5): 28595" /t"Cyrillic (koi8-r): 20866" /t"Cyrillic (koi8-ru): 21866" /t"Detects all encodings: 1048576" /t"Detects Unicode signature (BOM): 131072" /t"Detects UTF-8: 262144" /t"Detects HTML/XML Charset: 524288" /p(h) /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) %%COMMANDER_DRIVE%%\Utils\Text\EmEditor\EmEditor.exe "%P%O.%E" /nr /sp /cp %%1 /cps %%2 /ss%%3 /sa "%P%O.%%2"
работает отлично - создается перекодированный файл.
Разница в строках со словом "Cyrillic" во втором окне.
Твоя строка (первая) у меня не делает ничего.

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

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

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

И еще добавлено
Создал суперлайт-версию для тестирования:

Код: Выделить всё

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 символов, команда работать перестает, а строка усекается с конца.
Отсюда вывод - дело именно в длине всей строки, а не в числе ключей и уж тем более в их содержании.
Вот такие пироги...

Добавлено: Ср апр 18, 2018 10:49
MVV
Тут в первую очередь надо понять, где происходит усечение - в тотале при вызове AskParam (в частности, из-за ограничения на длину параметра в файле и поле ввода в диалоге) или в AskParam при вызове EmEditor, и мне пока этого не ясно.
Чтобы проверить, виноват ли тотал, надо посмотреть командную строку AskParam и проверить, всё ли в неё передано, что должно быть передано. И если виноват тотал, остается только сообщить о баге и ждать (или укоротить командную строку, например, с помощью выноса длинной части со списком кодировок в переменную окружения, устанавливаемую с помощью плагина Autorun).
Чтобы проверить, что EmEditor в некоторой ситуации получает не всю команду, надо смотреть его комстроку (это несложно, если редактор открывается и ждет, и сложнее, если он выполняет команду и сразу закрывается).
В любом случае, странно, что команда в ~1000 символов не работает, а в ~2000 символов работает.

Сейчас дописал к своей команде в конец в диалоге редактирования EM-команды кучу мусора (более 1400 символов), в конце которых "SOS SOS SOS". Посмотрел в комстроке AskParam, в конце три SOS присутствуют.
Проверил комстроку EmEditor (вынудив его показать диалог).
Конец комстроки тоже не обрезается.
А взял глубоковложенный тестовый файл:

Код: Выделить всё

D:\Temp\012345678901234567890123456789012345678901234567890123456789\012345678901234567890123456789012345678901234567890123456789\012345678901234567890123456789012345678901234567890123456789\явдл фукдл е уц дел\z
И редактору передалась битая комстрока (середина вырезана)... Причём, в комстроке AskParam так и указано! Похоже, баг в тотале!
Примеры комстрок для сравнения

Код: Выделить всё

# D:\Temp\Test folder name with spaces\z
"D:\TOTALCMD\Addons\AskParam\AskParam64.exe" /cSource Encoding " /uCyrillic (windows-1251): 1251 " /tSystem Default Encoding: 65536 " /tUnicode (UTF-16LE): 65537 " /tUnicode (UTF-16BE): 65538 " /tUnicode (UTF-8): 65001 " /tUnicode (UTF-7): 65000 " /tBinary (ASCII View): 65539 " /tBinary (Hexadecimal View): 65540 " /tCyrillic (cp866): 866 " /tCyrillic (iso-8859-5): 28595 " /tCyrillic (koi8-r): 20866 " /tCyrillic (koi8-ru): 21866 " /tDetects all encodings: 1048576 " /tDetects Unicode signature (BOM): 131072 " /tDetects UTF-8: 262144 " /tDetects HTML/XML Charset: 524288 " /p(h  /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) D:\MASM32\projects\cmdline.exe "D:\Program Files\EmEditor\EmEditor.exe" "D:\Temp\Test folder name with spaces\z." /nr /sp /cp %1 /cps %2 /ss%3 /sa "D:\Temp\Test folder name with spaces\z.%2"

# D:\Temp\0123456789\Test folder name with spaces\z
"D:\TOTALCMD\Addons\AskParam\AskParam64.exe" /cSource Encoding " /uCyrillic (windows-1251): 1251 " /tSystem Default Encoding: 65536 " /tUnicode (UTF-16LE): 65537 " /tUnicode (UTF-16BE): 65538 " /tUnicode (UTF-8): 65001 " /tUnicode (UTF-7): 65000 " /tBinary (ASCII View): 65539 " /tBinary (Hexadecimal View): 65540 " /tCyrillic (cp866): 866 " /tCyrillic (iso-8859-5): 28595 " /tCyrillic (koi8-r): 20866 " /tCyrillic (koi8-ru): 21866 " /tDetects all encodings: 1048576 " /tDetects Unicode signature (BOM): 131072 " /tDetects UTF-8: 262144 " /tDetects HTML/XML Charset: 524288 " /p(h  /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) D:\MASM32\projects\cmdline.exe "D:\Program Files\EmEditor\EmEditor.exe" "D:\Temp\0123456789\Test folder name with spaces\z." /nr /sp /cp %1 /cps %2 /ss%3 /sa "D:\Temp\0123456789\Test folder .%2"

# D:\Temp\0123456789\012345678901234567890123456789012345678901234567890123456789\Test folder name with spaces\z
"D:\TOTALCMD\Addons\AskParam\AskParam64.exe" /cSource Encoding " /uCyrillic (windows-1251): 1251 " /tSystem Default Encoding: 65536 " /tUnicode (UTF-16LE): 65537 " /tUnicode (UTF-16BE): 65538 " /tUnicode (UTF-8): 65001 " /tUnicode (UTF-7): 65000 " /tBinary (ASCII View): 65539 " /tBinary (Hexadecimal View): 65540 " /tCyrillic (cp866): 866 " /tCyrillic (iso-8859-5): 28595 " /tCyrillic (koi8-r): 20866 " /tCyrillic (koi8-ru): 21866 " /tDetects all encodings: 1048576 " /tDetects Unicode signature (BOM): 131072 " /tDetects UTF-8: 262144 " /tDetects HTML/XML Charset: 524288 " /p(h  /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) D:\MASM32\projects\cmdline.exe "D:\Program Files\EmEditor\EmEditor.exe" "D:\Temp\0123456789\012345678901234567890123456789012345678901234567890123456789\Test folder name with spaces\z." /nr .%2"

# D:\Temp\0123456789\012345678901234567890123456789012345678901234567890123456789\012345678901234567890123456789012345678901234567890123456789\Test folder name with spaces\z
"D:\TOTALCMD\Addons\AskParam\AskParam64.exe" /cSource Encoding " /uCyrillic (windows-1251): 1251 " /tSystem Default Encoding: 65536 " /tUnicode (UTF-16LE): 65537 " /tUnicode (UTF-16BE): 65538 " /tUnicode (UTF-8): 65001 " /tUnicode (UTF-7): 65000 " /tBinary (ASCII View): 65539 " /tBinary (Hexadecimal View): 65540 " /tCyrillic (cp866): 866 " /tCyrillic (iso-8859-5): 28595 " /tCyrillic (koi8-r): 20866 " /tCyrillic (koi8-ru): 21866 " /tDetects all encodings: 1048576 " /tDetects Unicode signature (BOM): 131072 " /tDetects UTF-8: 262144 " /tDetects HTML/XML Charset: 524288 " /p(h  /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) D:\MASM32\projects\cmdline.exe "D:\Program Files\EmEditor\EmEditor.exe" "D:\Temp\0123456789\012345678901234567890123456789012345678901234567890123456789\0123456789012345678901234567890123456.%2"

# D:\Temp\0123456789\012345678901234567890123456789012345678901234567890123456789\012345678901234567890123456789012345678901234567890123456789\012345678901234567890123456789012345678901234567890123456789\Test folder name with spaces\z
"D:\TOTALCMD\Addons\AskParam\AskParam64.exe" /cSource Encoding " /uCyrillic (windows-1251): 1251 " /tSystem Default Encoding: 65536 " /tUnicode (UTF-16LE): 65537 " /tUnicode (UTF-16BE): 65538 " /tUnicode (UTF-8): 65001 " /tUnicode (UTF-7): 65000 " /tBinary (ASCII View): 65539 " /tBinary (Hexadecimal View): 65540 " /tCyrillic (cp866): 866 " /tCyrillic (iso-8859-5): 28595 " /tCyrillic (koi8-r): 20866 " /tCyrillic (koi8-ru): 21866 " /tDetects all encodings: 1048576 " /tDetects Unicode signature (BOM): 131072 " /tDetects UTF-8: 262144 " /tDetects HTML/XML Charset: 524288 " /p(h  /c"Target Encoding" /u"Cyrillic (windows-1251): 1251" /t"System Default Encoding: 65536" /t"Unicode (UTF-16LE): 65537" /t"Unicode (UTF-16BE): 65538" /t"Unicode (UTF-8): 65001" /t"Unicode (UTF-7): 65000" /p(h) /cBOM /u"With Unicode signature (BOM): +" /t"Without Unicode signature (BOM): -" /p(h) D:\MASM32\projects\cmdline.exe "D:\Program Files\EmEditor\EmEditor.exe" "D:\Temp\0123456789\012345678901234567890123456789012345678901234567890123456789\0123456789012345678901234567890123456.%2"
Добавлено спустя 1 час:

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

Добавлено: Сб май 19, 2018 08:31
Вахмурка
Еще баг, аналогичный предыдущему, причем здесь спихнуть вину на EmEditor точно не получится.
Речь вот об этом нововведении:
history.txt писал(а):13.03.18 Added: Command line: support switching to virtual folders via GUID, e.g. for drive list, use cd ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} (32/64)
(хотя, конечно, подобные команды работали и раньше, в том числе и у меня, но... не в таком количестве и не в связке с AskParam)
Строка параметров AskParam

Код: Выделить всё

/u"Internet Explorer: {871C5380-42A0-1069-A2EA-08002B30309D}" /t"AutoPlay: {9C60DE1E-E5FC-40f4-A487-460851A8D915}" /t"Administrative Tools: {D20EA4E1-3957-11d2-A40B-0C5020524153}" /t"Libraries: {031E4825-7B94-4dc3-B131-E946B44C8DD5}" /t"Windows Firewall: {4026492F-2F69-46B8-B9BF-5654FC07E423}"  /t"All Tasks: {ED7BA470-8E54-465E-825C-99712043E01C}" /t"All Control Panel Items: {21EC2020-3AEA-1069-A2DD-08002B30309D}" /t"Location and Other Sensors: {E9950154-C418-419e-A90A-20C5287AE24B}" /t"Credential Manager: {1206F5F1-0569-412C-8FEC-3204630DFB70}" /t"HomeGroup: {67CA7650-96E6-4FDD-BB43-A8E774F73A57}" /t"HomeGroup folder: {6785BFAC-9D2D-4be5-B7E2-59937E8FB80A}" /t"Games: {ED228FDF-9EA8-4870-83b1-96b02CFE0D52}" /t"Favorites: {323CA680-C24D-4099-B94D-446DD2D7249E}" /t"Computer: {20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t"Recycle Bin: {645FF040-5081-101B-9F08-00AA002F954E}" /t"My Documents: {450D8FBA-AD25-11D0-98A8-0800361B1103}" /t"Recent Places: {22877a6d-37a1-461a-91b0-dbda5aaebc99}" /t"Public: {4336a54d-038b-4685-ab02-99bb52d3fb8b}" /t"Control Panel (Category): {26EE0668-A00A-44D7-9371-BEB064C98683}" /t"Folder Options: {6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}" /t"Tablet PC Settings: {80F3F1D5-FECA-45F3-BC32-752C152E456E}" /t"Font settings: {93412589-74D4-4E4E-AD0E-E0CB621440FD}" /t"Portable Devices: {35786D3C-B075-49b9-88DD-029876E11C01}" /t"Pen and Touch: {F82DF8F7-8B9F-442E-A48C-818EA735FF9B}" /t"Personalization: {ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}" /t"Remote Desktop Connection: {241D7C96-F8BF-4F85-B01F-E2B043341A4B}" /t"Search: {2559a1f0-21d7-11d4-bdaf-00c04f60b9f0}" /t"Get Programs: {15eae92e-f17a-4431-9f28-805e482dafd4}" /t"Printers: {2227A280-3AEA-1069-A2DE-08002B30309D}" /t"Programs and Features: {7b81be6a-ce2b-4676-a29e-eb907a5126c5}" /t"Default Programs: {17cd9488-1228-4b2f-88ce-4298e93e0966}" /t"Desktop: {3080F90D-D7AD-11D9-BD98-0000947B0257}" /t"Speech Recognition: {58E3C745-D971-4081-9034-86E34B30836A}" /t"Default Location: {00C6D95F-329C-409a-81D7-C46C66EA7F33}" /p(h) %%COMMANDER_EXE%% /L=::"%%1" /s /t /o
Длина строки около 2000 символов. Так вот, при отработке команды производится попытка запустить новую копию Тотала, потому что ключ /o откусывается (для моих путей - до состояния ".../s /"). Стоит убрать любой /t-ключ, и все пучком.
MVV, моя команда изменения кодировки теперь работает отлично. То есть похоже, что граница ошибки просто сдвинулась с 1k символов на 2k, но при этом осталась. И похоже, дело не в %O. Это так?

Добавлено: Сб май 19, 2018 10:36
Flasher
Вахмурка
Из твоего списка толк есть только от:
cd ::{D20EA4E1-3957-11d2-A40B-0C5020524153} \\Администрирование (9.20 b1+)
cd ::{031E4825-7B94-4dc3-B131-E946B44C8DD5} \\Библиотеки
cd ::{ED7BA470-8E54-465E-825C-99712043E01C} \\Все задачи (9.20 b1+)
cd ::{21EC2020-3AEA-1069-A2DD-08002B30309D} cm_OpenControls
cd ::{ED228FDF-9EA8-4870-83b1-96b02CFE0D52} \\Игры
cd ::{323CA680-C24D-4099-B94D-446DD2D7249E} \\Избранное (9.20 b1+)
cd ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} cm_OpenDrives
cd ::{645FF040-5081-101B-9F08-00AA002F954E} cm_OpenRecycled
cd ::{450D8FBA-AD25-11D0-98A8-0800361B1103} \\Мои документы
cd ::{4336a54d-038b-4685-ab02-99bb52d3fb8b} \\Общие
cd ::{26EE0668-A00A-44D7-9371-BEB064C98683} \\Панель управления
cd ::{7b81be6a-ce2b-4676-a29e-eb907a5126c5} \\Программы и компоненты (9.20 b1+)
Эти GUID на Win 7 вообще никуда не ведут:
cd ::{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}
cd ::{80F3F1D5-FECA-45F3-BC32-752C152E456E}
cd ::{F82DF8F7-8B9F-442E-A48C-818EA735FF9B}
cd ::{2559a1f0-21d7-11d4-bdaf-00c04f60b9f0}
cd ::{3080F90D-D7AD-11D9-BD98-0000947B0257}
Остальное — пустые папки. Так стоит ли с длиной заморачиваться?

Добавлено: Сб май 19, 2018 11:12
Вахмурка
Дело не в конкретных путях, а в возможных ошибках в AskParam (или в TC, что вероятнее)

Добавлено: Сб май 19, 2018 11:19
Flasher
Вахмурка писал(а):или в TC, что вероятнее
Вот и проверь без AskParam.

Добавлено: Сб май 19, 2018 11:22
Вахмурка
Проверял - работает. Как и с кодировками ранее. А косяк оказался не в EmEditor'е и даже не в AskParam'е, а как раз в ТС

Добавлено: Сб май 19, 2018 11:58
MVV
Вахмурка писал(а):Длина строки около 2000 символов.
Забавляет, что я эту строчку даже в поле параметров кнопки вставить не могу, она обрезается после "/s /". :D А когда нажал ОК, в BAR-файле строка закончилась так: "/s "...

Добавлено: Сб май 19, 2018 12:01
Вахмурка
2MVV
Я использовал em_команду.
Так ты воспроизвел проблему? Каковы первые впечатления?

Добавлено: Сб май 19, 2018 12:03
MVV
Вручную дописал остаток строки в BAR-файл, нажал кнопку, посмотрел комстроку AskParam: обрезается после "/s /".

Полагаю, в тотале просто есть ограничение на длину читаемой из INI-файла строки, из-за чего она обрезается. И, учитывая позицию обрезки, это ограничение равно 2048.

Добавлено: Сб май 19, 2018 12:13
Вахмурка
Тогда это баг, ибо
TC help писал(а):The maximum length of the command line is limited to 2047 characters on Windows 2000, and 8191 characters on Windows XP (the maximum supported by these operating systems)
Не знаю как у тебя, а у меня Win7x64, то есть явно не 2000.
Зарепортишь на англофоруме?
Получается, что Тоталу все равно, откуда брать параметры - из *.bar или из usercmd.ini. Разве это логично?

Добавлено: Сб май 19, 2018 13:16
MVV
Это с трудом можно назвать багом, это скорее старое ограничение. Сделал запрос.
Получается, что Тоталу все равно, откуда брать параметры - из *.bar или из usercmd.ini. Разве это логично?
А это как раз абсолютно логично, ведь смысл параметров одинаков.