AskParam - диалог запроса параметров командной строки
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Dimsok,
Вообще не представляю, как у тебя кнопки работали с одним апострофом вместо двух косых черт, ещё и без usebackq (если используешь type, то косые черты и usebackq обязательны). Основная масса ошибок была именно в синтаксисе команды for, а не в тонкостях связки AskParam+cmd, из которых только число % в одном месте было неверным. Рабочий пример у тебя есть, остальные кнопки исправишь по нему)
Наконец добавил в AskParam ключ /a, чтобы делать диалог поверх всех окон.
AskParam 1.0.6.120:
+ ключ /a управляет режимом поверх всех окон
* не все элементы окна изменяли размер
Вообще не представляю, как у тебя кнопки работали с одним апострофом вместо двух косых черт, ещё и без usebackq (если используешь type, то косые черты и usebackq обязательны). Основная масса ошибок была именно в синтаксисе команды for, а не в тонкостях связки AskParam+cmd, из которых только число % в одном месте было неверным. Рабочий пример у тебя есть, остальные кнопки исправишь по нему)
Наконец добавил в AskParam ключ /a, чтобы делать диалог поверх всех окон.
AskParam 1.0.6.120:
+ ключ /a управляет режимом поверх всех окон
* не все элементы окна изменяли размер
Я так

не учил, не надоть.Dimsok писал(а):('type %WF)
Смелое утверждение, но неправда.MVV писал(а):если используешь type, то косые черты и usebackq обязательны
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Никак не получается создать кнопку с выходными файлом на основе предложенного варианта. Вот пробую:
В консоли вроде все правильно показывается, а пишет "системе не удается найти указанный путь"
Добавлено спустя 3 минуты:
А все, ступил. Консоль же не понимает commander_path
Код: Выделить всё
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
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
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Не, у него основная - AskParam. Это у него иконка cmd.exe.wOxxOm писал(а):1. похоже сейчас у вас основная программа в кнопке - cmd.exe
А это верно. Проверить, правильная ли команда формируется, можно с помощью echo и pause. Кстати, вот вариант, где окно остаётся, но закрывается по любой клавише (чтобы работал, а не просто печатал команды, надо убрать @echo):wOxxOm писал(а):2. возможно надо четыре процента
Код: Выделить всё
/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
А это как раз-таки очень даже рекомендуется. А то cmd.exe так любит удалять внешние кавычки, если находит их, поэтому такая привычка может избавить от головной боли.wOxxOm писал(а):2. в кавычки брать всю команду совершенно не обязательно
Не помешает точно. А то вдруг имени файла встретится апостроф?4. usebackq и обратный апостроф необязателен
У него портабельный вариант, поэтому это плохая идея.5. ffmpeg лучше закинуть куда-то в папку в PATH
В твоем примере где-то должен быть -c?wOxxOm писал(а):6. зачастую перекодировать в ffmpeg не надо и достаточно копировать напрямую -c: copy или по крайней мере -c:v copy
Dimsok, ну без прямого доступа к компу через teamviewer и т.д. непонятно, почему не работает у вас. Я для отладки подобных непоняток вписываю перед cmd /c программку показывающую все параметры: showcmdline cmd /c ........
исходник для fasm:
MVV, насчет -c:v это так просто, попутно вспомнилось.
исходник для fasm:
Код: Выделить всё
include 'win32wx.inc'
.code
start:
invoke GetCommandLineW
invoke MessageBoxW,0,eax,0,MB_OK
invoke ExitProcess,0
.end start
Последний раз редактировалось wOxxOm Вт дек 02, 2014 23:29, всего редактировалось 1 раз.