AskParam - диалог запроса параметров командной строки

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Ага спасибо. Кнопки типа %ComSpec% /c for /f "delims=" %# in будут работать с askparam только по такому образцу? А то у меня много подобных к примеру для ffmpg для конвертирования под разные форматы. Надо будет объединить в одну
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Dimsok,
Вообще не представляю, как у тебя кнопки работали с одним апострофом вместо двух косых черт, ещё и без usebackq (если используешь type, то косые черты и usebackq обязательны). Основная масса ошибок была именно в синтаксисе команды for, а не в тонкостях связки AskParam+cmd, из которых только число % в одном месте было неверным. Рабочий пример у тебя есть, остальные кнопки исправишь по нему)


Наконец добавил в AskParam ключ /a, чтобы делать диалог поверх всех окон.

AskParam 1.0.6.120:
+ ключ /a управляет режимом поверх всех окон
* не все элементы окна изменяли размер
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Не знаю, вроде кнопки работали по такому образцу. Так Flasher научил :D
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Я так
Dimsok писал(а):('type %WF)
не учил, не надоть.
MVV писал(а):если используешь type, то косые черты и usebackq обязательны
Смелое утверждение, но неправда. :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):Смелое утверждение, но неправда. :)
Никогда не указывал команды в апострофах, но чую, что куча проблем всплывет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

До сего момента пока не всплывало.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Никак не получается создать кнопку с выходными файлом на основе предложенного варианта. Вот пробую:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\AskParam.exe /w /c"convert vid" /t"avi" /t"flv" /p"convert video" %ComSpec%
/k "for /f "usebackq delims=" %%%%# in (`type "%WF"`) do "%%COMMANDER_PATH%%\Utils\video\ffmpeg\bin\ffmpeg.exe" -i "%P%%%%#" "%T%%%%~n#.%%1""
cmd.exe
Convert with ffmpeg


-1
В консоли вроде все правильно показывается, а пишет "системе не удается найти указанный путь"

Добавлено спустя 3 минуты:

А все, ступил. Консоль же не понимает commander_path
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Консоль, запущенная из тотала или процессов, запущенных из тотала, понимает COMMANDER_PATH (кроме случаев запуска с повышением).
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Не знаю, у меня в том примере, который я привел, не работало. Как поменял на путь типа "program files", заработало. С чего бы это?
wOxxOm
Сообщения: 30
Зарегистрирован: Вс фев 12, 2006 22:10

Сообщение wOxxOm »

Dimsok, 1. похоже сейчас у вас основная программа в кнопке - cmd.exe, а надо AskParam.exe 2. возможно надо четыре процента %%%%COMMANDER_PATH%%%%\Utils\video\ffmpeg в команде.

P.S. 1. ключ /k у cmd вообще не в тему - нужен /c, 2. в кавычки брать всю команду совершенно не обязательно 3. %comspec% излишество, достаточно просто cmd, 4. usebackq и обратный апостроф необязателен 5. ffmpeg лучше закинуть куда-то в папку в PATH 6. зачастую перекодировать в ffmpeg не надо и достаточно копировать напрямую -c: copy или по крайней мере -c:v copy

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

/c"convert vid" /t"avi" /t"flv" /p"convert video" /w cmd
/c for /f "delims=" %%%%# in ('type "%WF"') do ffmpeg -i "%P%%%%#" "%T%%%%~n#.%%1"

%COMMANDER_PATH%\Plugins\exe\AskParam.exe
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Будто я с 4% не пробовал
Ключ /k в тему, когда надо посмотреть, что не так
Мне видней, где мне держать ffmeg. Давайте ещё все в корне диска сохранять, и проблем с путями будет меньше
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

wOxxOm писал(а):1. похоже сейчас у вас основная программа в кнопке - cmd.exe
Не, у него основная - AskParam. Это у него иконка cmd.exe.
wOxxOm писал(а):2. возможно надо четыре процента
А это верно. Проверить, правильная ли команда формируется, можно с помощью echo и pause. Кстати, вот вариант, где окно остаётся, но закрывается по любой клавише (чтобы работал, а не просто печатал команды, надо убрать @echo):

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

/c "if 0==0 (for /f "usebackq delims=" %%%%# in (`type "%WF"`) do @echo "%%%%COMMANDER_PATH%%%%\Utils\video\ffmpeg\bin\ffmpeg.exe" -i "%P%%%%#" "%T%%%%~n#.%%1") & pause"
wOxxOm писал(а):P.S. 1. ключ /k у cmd вообще не в тему - нужен /c
Так не будет виден результат. Разве что с извращением типа того, что выше.
wOxxOm писал(а):2. в кавычки брать всю команду совершенно не обязательно
А это как раз-таки очень даже рекомендуется. А то cmd.exe так любит удалять внешние кавычки, если находит их, поэтому такая привычка может избавить от головной боли.
4. usebackq и обратный апостроф необязателен
Не помешает точно. А то вдруг имени файла встретится апостроф?
5. ffmpeg лучше закинуть куда-то в папку в PATH
У него портабельный вариант, поэтому это плохая идея.
wOxxOm писал(а):6. зачастую перекодировать в ffmpeg не надо и достаточно копировать напрямую -c: copy или по крайней мере -c:v copy
В твоем примере где-то должен быть -c?
wOxxOm
Сообщения: 30
Зарегистрирован: Вс фев 12, 2006 22:10

Сообщение wOxxOm »

Dimsok, ну без прямого доступа к компу через teamviewer и т.д. непонятно, почему не работает у вас. Я для отладки подобных непоняток вписываю перед cmd /c программку показывающую все параметры: showcmdline cmd /c ........

исходник для fasm:

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

include 'win32wx.inc'
.code
  start:
  invoke GetCommandLineW
  invoke MessageBoxW,0,eax,0,MB_OK
  invoke ExitProcess,0
.end start
MVV, насчет -c:v это так просто, попутно вспомнилось.
Последний раз редактировалось wOxxOm Вт дек 02, 2014 23:29, всего редактировалось 1 раз.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Кстати, MVV, а с помощью /v можно только увеличить окно? Меньше 500 ничего? Я пробовал по-всякому, но получалось только увеличить окно, хотя куда уж больше изначального
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Специально проверил сейчас, можно как увеличить ширину, так и уменьшить, но у окна задана минимальная ширина - 420 пикселей.
Ответить