Страница 6 из 20
Добавлено: Пн дек 01, 2014 20:03
Dimsok
Ага спасибо. Кнопки типа %ComSpec% /c for /f "delims=" %# in будут работать с askparam только по такому образцу? А то у меня много подобных к примеру для ffmpg для конвертирования под разные форматы. Надо будет объединить в одну
Добавлено: Пн дек 01, 2014 20:35
MVV
Dimsok,
Вообще не представляю, как у тебя кнопки работали с одним апострофом вместо двух косых черт, ещё и без
usebackq (если используешь
type, то косые черты и
usebackq обязательны). Основная масса ошибок была именно в синтаксисе команды
for, а не в тонкостях связки AskParam+cmd, из которых только число % в одном месте было неверным. Рабочий пример у тебя есть, остальные кнопки исправишь по нему)
Наконец добавил в AskParam ключ
/a, чтобы делать диалог поверх всех окон.
AskParam 1.0.6.120:
+ ключ /a управляет режимом поверх всех окон
* не все элементы окна изменяли размер
Добавлено: Пн дек 01, 2014 20:51
Dimsok
Не знаю, вроде кнопки работали по такому образцу. Так
Flasher научил

Добавлено: Пн дек 01, 2014 22:38
Flasher
Я так
Dimsok писал(а):('type %WF)
не учил, не надоть.
MVV писал(а):если используешь type, то косые черты и usebackq обязательны
Смелое утверждение, но неправда.

Добавлено: Пн дек 01, 2014 23:50
MVV
Flasher писал(а):Смелое утверждение, но неправда.

Никогда не указывал команды в апострофах, но чую, что куча проблем всплывет.
Добавлено: Вт дек 02, 2014 13:42
Flasher
До сего момента пока не всплывало.
Добавлено: Вт дек 02, 2014 22: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
Добавлено: Вт дек 02, 2014 22:53
MVV
Консоль, запущенная из тотала или процессов, запущенных из тотала, понимает COMMANDER_PATH (кроме случаев запуска с повышением).
Добавлено: Вт дек 02, 2014 22:59
Dimsok
Не знаю, у меня в том примере, который я привел, не работало. Как поменял на путь типа "program files", заработало. С чего бы это?
Добавлено: Вт дек 02, 2014 23:04
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
Добавлено: Вт дек 02, 2014 23:09
Dimsok
Будто я с 4% не пробовал
Ключ /k в тему, когда надо посмотреть, что не так
Мне видней, где мне держать ffmeg. Давайте ещё все в корне диска сохранять, и проблем с путями будет меньше
Добавлено: Вт дек 02, 2014 23:19
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?
Добавлено: Вт дек 02, 2014 23:25
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 это так просто, попутно вспомнилось.
Добавлено: Вт дек 02, 2014 23:28
Dimsok
Кстати, MVV, а с помощью /v можно только увеличить окно? Меньше 500 ничего? Я пробовал по-всякому, но получалось только увеличить окно, хотя куда уж больше изначального
Добавлено: Ср дек 03, 2014 14:19
MVV
Специально проверил сейчас, можно как увеличить ширину, так и уменьшить, но у окна задана минимальная ширина - 420 пикселей.