Я записываю сериалы на DVD. Я хотел бы включить опцию Play all, чтобы воспроизвести их все. Конечно, это должно работать для любого игрока, установленного системой.

Я пытаюсь вызвать то же самое действие, которое вызывает пользователь, выбрав все видеофайлы и выбрав Open .

Вот что я попробовал:

rem Start executes the default action for the given file
start ../*.mkv

Не работает:

Описание изображения

Но это действительно должно быть возможно. Еще раз, это задача, которую я хочу автоматизировать:

Описание изображения

Любой вменяемый проигрыватель ставит все файлы в очередь и проигрывает тот, который вы щелкнули правой кнопкой мыши.

2 ответа2

1

Попробуйте этот быстрый и грязный подход и посмотрите, работает ли он для вас (подходит для меня, но я не тестировал его на системах с другими проигрывателями по умолчанию):

@echo off
setlocal enabledelayedexpansion
REM Get ProgID associated with AVIs
for /f "tokens=3" %%a in ('reg query HKCR\.avi /ve ^| find "REG_SZ"') do set progID=%%a
REM Get open command for that ProgID
for /f "tokens=2*" %%a in ('reg query HKCR\%progID%\shell\open\command /ve ^| find "REG_SZ"') do set progNM=%%b
REM Now we should hopefully have "drive:\full\path\to\player.exe" "%1", so let's chop off the last 5 chars
set progNM=%progNM:~0,-5%
REM Expand wildcards and append filenames after program name
for %%a in (%1) do set progNM=!progNM! "%%~a"
REM Run the program with all the files and hope it won't result in N separate instances bogging down the system!
%progNM%

Сохраните его, например, как Play.bat и назовите его, используя play *.mkv или аналогичный.

Код пытается найти программу, связанную с AVI, предполагает, что это видеопроигрыватель используется для всех видеоформатов, расширяет что-то вроде * .mkv до «File1.mkv File2.mkv ...» и передает их все в программу. Имейте в виду, что если файлов слишком много, то максимальная длина командной строки обязательно будет превышена (я думаю, что это все еще 8192 символа), но, надеюсь, в этом случае программа все равно запустится с таким количеством полных имен файлов, которое может поместиться.

0

Вы можете создать cmd-файл только с именами файлов для воспроизведения (без команды «start»), т.е. playlist.cmd.

episode01.mkv
episode02.mkv
episode03.mkv
episode04.mkv

и когда вы запустите этот файл, он откроет все медиа-файлы в любом проигрывателе, связанном с типом файла. Проблема в том, что он начинает воспроизводить все файлы один за другим, не дожидаясь их завершения (что, конечно, не то, что вы хотите - по крайней мере, VLC делает это для меня).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .