Конференция "Прочее" » .bat, enqueue и реестр
 
  • axis_of_evil © (14.08.08 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 © (14.08.08 10:52) [1]
    // кавычки уехали, но это мелочи ..
  • axis_of_evil © (14.08.08 10:55) [2]
    пояснюсь:
     если выделить несколько файлов и по правому клику вызвать для них "Decode to .wav" - то запустится экземпляр .bat для каждого, а нужно - передать весь список в один .bat
  • oldman © (14.08.08 10:57) [3]

    > axis_of_evil ©   (14.08.08 10:55) [2]
    > а нужно - передать весь список в один .bat


    А что в том bat-е?
  • axis_of_evil © (14.08.08 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 © (14.08.08 10:59) [5]
    я тебе в личку уже ответил ;)
  • oldman © (14.08.08 11:01) [6]

    > отдельный вопрос - как будут переданы аргументы в .bat -
    >  все в %1 или каждый в %1,%2 ..


    По моему, отдельно.
    Но откуда bat узнает количество параметров?
  • axis_of_evil © (14.08.08 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 © (14.08.08 11:03) [8]

    > brother ©   (14.08.08 10:59) [5]
    > я тебе в личку уже ответил ;)

    спасибо за идею :>
    должно быть решение пороще - исключительно .bat-методами
  • oldman © (14.08.08 11:08) [9]

    > axis_of_evil ©   (14.08.08 10:55) [2]
    > пояснюсь:
    >  если выделить несколько файлов и по правому клику вызвать
    > для них "Decode to .wav" - то запустится экземпляр .bat
    > для каждого, а нужно - передать весь список в один .bat


    Я думаю по правому клику - никак
    Если ты сделаешь это не для .wav, а для .doc, для каждого запустится свой экземпляр Word.
  • axis_of_evil © (14.08.08 11:18) [10]

    > oldman ©   (14.08.08 11:08) [9]
    > Я думаю по правому клику - никак

    неужто - при enqueue сотни .mp3-фалов в winamp - для каждого запускается свой экземпляр winamp, который проверяет - запущен ли winamp уже и сообщает ему о файле, который нужно добавить в очередь .. нее, не верю. других вариантов пока в голову не пришло.
  • brother © (14.08.08 11:28) [11]

    > для каждого запускается свой экземпляр winamp,

    нет там в параметры winampу передается список этих файлов ;)
    как я понимаю, нужно узнать как называется параметр в bat файле, который отвечает как раз за использование доп параметров?
    зы надо копать по синтаксис bat и cmd файлов...
  • brother © (14.08.08 11:33) [12]
    зы посмотрел в справке виндовс, по командам cmd...
    Использование операторов перенаправления команд


    но это все относится только к исполняемым файлам, а не к пакетным файлам(
  • axis_of_evil © (14.08.08 11:38) [13]

    brother ©   (14.08.08 11:33) [12]
    > Использование операторов перенаправления команд

    это вроде file1.txt > myapp.exe >> result.dat
    не то
  • brother © (14.08.08 11:46) [14]
    внешний параметр передается "%1%", возможно он фиксирован 1 параметром и не расчитан на групповую обработку файлов...
  • axis_of_evil © (14.08.08 11:49) [15]

    > brother ©   (14.08.08 11:46) [14]
    > внешний параметр передается "%1%", возможно он фиксирован
    > 1 параметром и не расчитан на групповую обработку файлов.
    > ..

    честно говоря, не понял мысль %>
    // внешний параметр (если он состоит из имен нескольких файлов) может передаваться в %1, %2, .. - например, если файлы одновременно бросить на .bat файл
  • brother © (14.08.08 11:53) [16]
    проверил: винамп реагирует не на весь список добавляемых файлов, а лишь на 1 файл...
    те добавление списка файлов происходит как бы запуская каждый файл по отдельности, а винамп уже обрабатывая этот (один!) параметр, добавляя его в плэйлист...
    отсюда, при запуске например 5 doc файлов они открываются в 5 разных окнах! это и логично, ведь команда запуска дана всем 5 но не группой а по очереди)
  • brother © (14.08.08 11:59) [17]
    имхо, придется тебе всеж прогу писать, которая генерирует bat с нужным списком файлов ;)
  • Anatoly Podgoretsky © (14.08.08 12:01) [18]
    > axis_of_evil  (14.08.2008 11:49:15)  [15]

    Запуск по ассоциации оперирует только одним параметром %1
  • easy © (14.08.08 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 © (14.08.08 14:09) [20]
    >[18] Anatoly Podgoretsky © (2008-08-14 12:01:00)
    а вот тебе фиг. то ли «%*», то ли «*» — не помню. запихает всё, как миленькое. емнип.

    ---
    Understanding is not required. Only obedience.
  • Anatoly Podgoretsky © (14.08.08 15:29) [21]
    Ну пусть автор проверит.
  • axis_of_evil © (14.08.08 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 © (14.08.08 18:16) [23]

    > rundll32.exe shell32.dll,Control_RunDLL "%1",%*
    > какую роль ишрает запятая?

    - здесь %1 - это запускаемый модуль, а дальше параметры. Запятая относится к синтаксису сомандной строки rundll32.exe.
  • axis_of_evil © (14.08.08 20:12) [24]

    ketmar ©
    Anatoly Podgoretsky ©
    han_malign ©

    спасибо :>

    но
     дорогой Зенон, я не догоняю
                         /Ахилесс/

    вопросы из axis_of_evil ©   (14.08.08 16:13) [22] (за исключением последнего) остаются актуальными
  • easy © (14.08.08 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
 
Конференция "Прочее" » .bat, enqueue и реестр
Есть новые Нет новых   [134439   +53][b:0][p:0.002]