Форум: "Прочее";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
Вниз.bat, enqueue и реестр Найти похожие ветки
← →
axis_of_evil © (2008-08-14 10:51) [0]не могу понять - как должен выглядеть ключ реестра, отвечающий за фалы с определенным расширением.
такая модификация реестра позволяет применять к .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 файл?
← →
axis_of_evil © (2008-08-14 10:52) [1]// кавычки уехали, но это мелочи ..
← →
axis_of_evil © (2008-08-14 10:55) [2]пояснюсь:
если выделить несколько файлов и по правому клику вызвать для них "Decode to .wav" - то запустится экземпляр .bat для каждого, а нужно - передать весь список в один .bat
← →
oldman © (2008-08-14 10:57) [3]
> axis_of_evil © (14.08.08 10:55) [2]
> а нужно - передать весь список в один .bat
А что в том bat-е?
← →
axis_of_evil © (2008-08-14 10:59) [4]
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?
← →
brother © (2008-08-14 10:59) [5]я тебе в личку уже ответил ;)
← →
oldman © (2008-08-14 11:01) [6]
> отдельный вопрос - как будут переданы аргументы в .bat -
> все в %1 или каждый в %1,%2 ..
По моему, отдельно.
Но откуда bat узнает количество параметров?
← →
axis_of_evil © (2008-08-14 11:02) [7]
> 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
← →
axis_of_evil © (2008-08-14 11:03) [8]
> brother © (14.08.08 10:59) [5]
> я тебе в личку уже ответил ;)
спасибо за идею :>
должно быть решение пороще - исключительно .bat-методами
← →
oldman © (2008-08-14 11:08) [9]
> axis_of_evil © (14.08.08 10:55) [2]
> пояснюсь:
> если выделить несколько файлов и по правому клику вызвать
> для них "Decode to .wav" - то запустится экземпляр .bat
> для каждого, а нужно - передать весь список в один .bat
Я думаю по правому клику - никак
Если ты сделаешь это не для .wav, а для .doc, для каждого запустится свой экземпляр Word.
← →
axis_of_evil © (2008-08-14 11:18) [10]
> oldman © (14.08.08 11:08) [9]
> Я думаю по правому клику - никак
неужто - при enqueue сотни .mp3-фалов в winamp - для каждого запускается свой экземпляр winamp, который проверяет - запущен ли winamp уже и сообщает ему о файле, который нужно добавить в очередь .. нее, не верю. других вариантов пока в голову не пришло.
← →
brother © (2008-08-14 11:28) [11]
> для каждого запускается свой экземпляр winamp,
нет там в параметры winampу передается список этих файлов ;)
как я понимаю, нужно узнать как называется параметр в bat файле, который отвечает как раз за использование доп параметров?
зы надо копать по синтаксис bat и cmd файлов...
← →
brother © (2008-08-14 11:33) [12]зы посмотрел в справке виндовс, по командам cmd...
Использование операторов перенаправления команд
но это все относится только к исполняемым файлам, а не к пакетным файлам(
← →
axis_of_evil © (2008-08-14 11:38) [13]
brother © (14.08.08 11:33) [12]
> Использование операторов перенаправления команд
это вроде file1.txt > myapp.exe >> result.dat
не то
← →
brother © (2008-08-14 11:46) [14]внешний параметр передается "%1%", возможно он фиксирован 1 параметром и не расчитан на групповую обработку файлов...
← →
axis_of_evil © (2008-08-14 11:49) [15]
> brother © (14.08.08 11:46) [14]
> внешний параметр передается "%1%", возможно он фиксирован
> 1 параметром и не расчитан на групповую обработку файлов.
> ..
честно говоря, не понял мысль %>
// внешний параметр (если он состоит из имен нескольких файлов) может передаваться в %1, %2, .. - например, если файлы одновременно бросить на .bat файл
← →
brother © (2008-08-14 11:53) [16]проверил: винамп реагирует не на весь список добавляемых файлов, а лишь на 1 файл...
те добавление списка файлов происходит как бы запуская каждый файл по отдельности, а винамп уже обрабатывая этот (один!) параметр, добавляя его в плэйлист...
отсюда, при запуске например 5 doc файлов они открываются в 5 разных окнах! это и логично, ведь команда запуска дана всем 5 но не группой а по очереди)
← →
brother © (2008-08-14 11:59) [17]имхо, придется тебе всеж прогу писать, которая генерирует bat с нужным списком файлов ;)
← →
Anatoly Podgoretsky © (2008-08-14 12:01) [18]> axis_of_evil (14.08.2008 11:49:15) [15]
Запуск по ассоциации оперирует только одним параметром %1
← →
easy © (2008-08-14 12:59) [19]
@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
← →
ketmar © (2008-08-14 14:09) [20]>[18] Anatoly Podgoretsky © (2008-08-14 12:01:00)
а вот тебе фиг. то ли «%*», то ли «*» — не помню. запихает всё, как миленькое. емнип.
---
Understanding is not required. Only obedience.
← →
Anatoly Podgoretsky © (2008-08-14 15:29) [21]Ну пусть автор проверит.
← →
axis_of_evil © (2008-08-14 16:13) [22]
> 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.reg
test.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",%*
какую роль ишрает запятая? - оптыным путем пока туго понимается %>
← →
han_malign © (2008-08-14 18:16) [23]
> rundll32.exe shell32.dll,Control_RunDLL "%1",%*
> какую роль ишрает запятая?
- здесь %1 - это запускаемый модуль, а дальше параметры. Запятая относится к синтаксису сомандной строки rundll32.exe.
← →
axis_of_evil © (2008-08-14 20:12) [24]
ketmar ©
Anatoly Podgoretsky ©
han_malign ©
спасибо :>
но
дорогой Зенон, я не догоняю
/Ахилесс/
вопросы из axis_of_evil © (14.08.08 16:13) [22] (за исключением последнего) остаются актуальными
← →
easy © (2008-08-14 20:39) [25]
> 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
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c