-
не могу понять - как должен выглядеть ключ реестра, отвечающий за фалы с определенным расширением. такая модификация реестра позволяет применять к .ape файлам комманду "Decode to .wav" Windows Registry Editor Version 5.00 "
[HKEY_LOCAL_MACHINE\Software\Classes\Ape.Decode]
[HKEY_LOCAL_MACHINE\Software\Classes\Ape.Decode\shell]
"" = "shell.Decode"
[HKEY_LOCAL_MACHINE\Software\Classes\Ape.Decode\shell\Decode]
"" = "Decode to .wav"
[HKEY_LOCAL_MACHINE\Software\Classes\Ape.Decode\shell\Decode\command]
"" = "\"F:\\scp\\decode ape\\decape.bat\" \"%1\""
[HKEY_CLASSES_ROOT\.ape]
"" = "Ape.Decode проблема в том - как сделать enqueue (как в различных плеерах), т.е. одному .bat-файлу передать в качестве аргумента строку, состоящую из несколькх имен файлов. как должно выглядеть значение в ключе command? как должен обрабатывать переданную ему строку аргументов .bat файл?
-
// кавычки уехали, но это мелочи ..
-
пояснюсь: если выделить несколько файлов и по правому клику вызвать для них "Decode to .wav" - то запустится экземпляр .bat для каждого, а нужно - передать весь список в один .bat
-
> axis_of_evil © (14.08.08 10:55) [2] > а нужно - передать весь список в один .bat
А что в том bat-е?
-
oldman © (14.08.08 10:57) [3] > А что в том bat-е?
> axis_of_evil © (14.08.08 10:51) > как должен обрабатывать переданную ему строку аргументов > .bat файл?
%> пока щто там @echo off
"F:\mu\pragma\ape decoder\MAC.exe" "%~1" "%~d1%~p1%~n1.wav" -d
pause отдельный вопрос - как будут переданы аргументы в .bat - все в %1 или каждый в %1,%2 .. ? // потому и спрашиваю - как делают enqueue?
-
я тебе в личку уже ответил ;)
-
> отдельный вопрос - как будут переданы аргументы в .bat - > все в %1 или каждый в %1,%2 ..
По моему, отдельно. Но откуда bat узнает количество параметров?
-
> oldman © (14.08.08 11:01) [6] > По моему, отдельно.Но > откуда bat узнает количество параметров?
да хоть отсюда %> ты мне только расскажи - как их все передать в один .bat %> if '%1'=='' goto :finish
md "%~d1%~p1mp3"
echo processing %1
start /min /wait C:\mu\pragma\EAC\LAME\LAME.exe -b 320 -m s "%~1" "%~d1%~p1mp3\%~n1.mp3"
:loop
if '%2'=='' goto :finish
echo processing %2
start /min /wait C:\mu\pragma\EAC\LAME\LAME.exe -b 320 -m s "%~2" "%~d2%~p2mp3\%~n2.mp3"
shift /1
goto :loop
:finish
-
> brother © (14.08.08 10:59) [5] > я тебе в личку уже ответил ;)
спасибо за идею :> должно быть решение пороще - исключительно .bat-методами
-
> axis_of_evil © (14.08.08 10:55) [2] > пояснюсь: > если выделить несколько файлов и по правому клику вызвать > для них "Decode to .wav" - то запустится экземпляр .bat > для каждого, а нужно - передать весь список в один .bat
Я думаю по правому клику - никак Если ты сделаешь это не для .wav, а для .doc, для каждого запустится свой экземпляр Word.
-
> oldman © (14.08.08 11:08) [9] > Я думаю по правому клику - никак
неужто - при enqueue сотни .mp3-фалов в winamp - для каждого запускается свой экземпляр winamp, который проверяет - запущен ли winamp уже и сообщает ему о файле, который нужно добавить в очередь .. нее, не верю. других вариантов пока в голову не пришло.
-
> для каждого запускается свой экземпляр winamp,
нет там в параметры winampу передается список этих файлов ;) как я понимаю, нужно узнать как называется параметр в bat файле, который отвечает как раз за использование доп параметров? зы надо копать по синтаксис bat и cmd файлов...
-
зы посмотрел в справке виндовс, по командам cmd... Использование операторов перенаправления команд но это все относится только к исполняемым файлам, а не к пакетным файлам(
-
brother © (14.08.08 11:33) [12] > Использование операторов перенаправления команд
это вроде file1.txt > myapp.exe >> result.dat не то
-
внешний параметр передается "%1%", возможно он фиксирован 1 параметром и не расчитан на групповую обработку файлов...
-
> brother © (14.08.08 11:46) [14] > внешний параметр передается "%1%", возможно он фиксирован > 1 параметром и не расчитан на групповую обработку файлов. > ..
честно говоря, не понял мысль %> // внешний параметр (если он состоит из имен нескольких файлов) может передаваться в %1, %2, .. - например, если файлы одновременно бросить на .bat файл
-
проверил: винамп реагирует не на весь список добавляемых файлов, а лишь на 1 файл... те добавление списка файлов происходит как бы запуская каждый файл по отдельности, а винамп уже обрабатывая этот (один!) параметр, добавляя его в плэйлист... отсюда, при запуске например 5 doc файлов они открываются в 5 разных окнах! это и логично, ведь команда запуска дана всем 5 но не группой а по очереди)
-
имхо, придется тебе всеж прогу писать, которая генерирует bat с нужным списком файлов ;)
-
> axis_of_evil (14.08.2008 11:49:15) [15]
Запуск по ассоциации оперирует только одним параметром %1
-
@echo off
REM decode.bat
REM Положить в C:\Documents and Settings\UserName\SendTo\
REM Вызывать через меню "Отрпавить"
for %%A in (%*) do "F:\mu\pragma\ape decoder\MAC.exe" %%A
-
>[18] Anatoly Podgoretsky © (2008-08-14 12:01:00) а вот тебе фиг. то ли «%*», то ли «*» — не помню. запихает всё, как миленькое. емнип.
--- Understanding is not required. Only obedience.
-
Ну пусть автор проверит.
-
> easy © (14.08.08 12:59) [19]
спасибо, намного лучше - но я не понимаю, как это работает %> ставим [HKEY_LOCAL_MACHINE\Software\Classes\Lame.Encode\shell\Encode\command]
"" = "\"F:\\scp\\test.bat\" \"%1\",*%"
в результате выполнения @echo off
for %%A in (%*) do echo %%A
pause
получаем два окна "F:\scp\1.wav" 1.wav 2.wav install sound handlers.regtest.batДля продолжения нажмите любую клавишу . . . "F:\scp\2.wav" 1.wav 2.wav install sound handlers.reg test.batДля продолжения нажмите любую клавишу . . . чего здесь делает имя .reg-файла - вообсче не пойму .. киньте в меня ссылкой про *% (%* - не работает) у .bat-файлов прописано "%1" %* у .cpl-файлов - rundll32.exe shell32.dll,Control_RunDLL "%1",%* какую роль ишрает запятая? - оптыным путем пока туго понимается %>
-
> rundll32.exe shell32.dll,Control_RunDLL "%1",%* > какую роль ишрает запятая?
- здесь %1 - это запускаемый модуль, а дальше параметры. Запятая относится к синтаксису сомандной строки rundll32.exe.
-
ketmar © Anatoly Podgoretsky © han_malign ©
спасибо :>
но дорогой Зенон, я не догоняю /Ахилесс/
вопросы из axis_of_evil © (14.08.08 16:13) [22] (за исключением последнего) остаются актуальными
-
> axis_of_evil © (14.08.08 20:12) [24]
да оставь ты реестр. дольше проживет. сделай, как в [19], только параметры добавь for %%A in (%*) do "F:\mu\pragma\ape decoder\MAC.exe" %%A %%~nA.wav -d
|