shell do Windows para reproduzir (enfileirar) todos os arquivos de vídeo na ordem correta

0

Estou gravando uma série em um DVD. Gostaria de incluir a opção Reproduzir todos para reproduzi-los todos. Claro, isso deve funcionar para qualquer player que o sistema tenha instalado.

O que eu estou tentando fazer é invocar a mesma ação que o usuário invoca selecionando todos os arquivos de vídeo e selecionando Open .

Isso é o que eu tentei:

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

Não funciona:

Masissodeveserrealmentepossível.Maisumavez,estaéatarefaquequeroautomatizar:

Qualquer jogador sensato enfileira todos os arquivos e toca aquele que você clicou com o botão direito do mouse.

    
por Tomáš Zato 25.03.2015 / 22:52

2 respostas

1

Experimente esta abordagem rápida e sem recursos e veja se funciona para você (para mim, mas não testei em sistemas com players padrão diferentes):

@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%

Salve-o como Play.bat por exemplo e chame-o usando play *.mkv ou similar.

O código tenta localizar o programa associado a AVIs, assume que é o reprodutor de vídeo em uso para todos os formatos de vídeo, expande algo como * .mkv para "File1.mkv File2.mkv ..." e passa todos para o arquivo programa. Tenha em mente que, se houver muitos arquivos, o comprimento máximo da linha de comando será excedido (acho que ainda é 8192 chars ), mas esperamos que, nesse caso, o programa ainda seja iniciado com tantos nomes de arquivos completos quanto possível.

    
por 08.04.2015 / 07:58
0

Você pode criar um arquivo cmd apenas com os nomes dos arquivos a serem reproduzidos (sem o comando 'start'), ou seja, playlist.cmd

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

e quando você executar este arquivo, ele abrirá todos os arquivos de mídia em qualquer player associado ao tipo de arquivo. O problema é que ele começa a reproduzir todos os arquivos um após o outro, sem esperar que eles terminem de tocar (o que obviamente não é o que você quer - pelo menos o VLC faz isso por mim).

    
por 26.03.2015 / 00:21

Tags