Windows shell 按正确顺序播放(排队)所有视频文件

Windows shell 按正确顺序播放(排队)所有视频文件

我正在将系列刻录到 DVD 上。我想包括全部播放选项播放所有歌曲。当然,这适用于系统安装的任何播放器。

我想要做的是通过选择所有视频文件并选择来调用用户所调用的相同操作Open

这是我尝试过的:

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

不起作用:

图片描述

但这确实是可能的。再次重申,这是我想要自动化的任务:

图片描述

任何理智的玩家都会将所有文件排入队列并播放您右键单击的文件。

答案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 *.mkv或类似方式调用它。

代码尝试找到与 AVI 关联的程序,假设它是用于所有视频格式的视频播放器,将 *.mkv 之类的内容扩展为“File1.mkv File2.mkv ...”,并将它们全部传递给程序。请记住,如果文件太多,则必然会超出最大命令行长度(我认为它仍然8192 个字符),但希望在这种情况下程序仍然能够以尽可能多的完整文件名启动。

答案2

您可以创建一个只包含要播放的文件名的 cmd 文件(没有“start”命令),即播放列表

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

当您运行此文件时,它将使用与该文件类型关联的播放器打开所有媒体文件。问题是,它会开始一个接一个地播放所有文件,而不会等待它们播放完毕(这当然不是您想要的 - 至少 VLC 为我做到了这一点)。

相关内容