首页 > 其他分享 >借用【.bat 批处理】实现同时播放多个视频 · 以PotPlayer播放器为例

借用【.bat 批处理】实现同时播放多个视频 · 以PotPlayer播放器为例

时间:2022-10-29 15:55:09浏览次数:49  
标签:bat 为例 %% cmd PotPlayerMini64 批处理 PotPlayer 执行

突然有这样的需求:同时打开一个文件夹下的多个视频播放任务。如何来实现呢?


理所当然的是想到Potplayer本身可以开多个进程,也就是多开窗口播放,但是经过实验,发现在资源管理器中选取多个视频源并不能实现同时打开并播放!如下图:

开始.bat

想要实现同时打开任务,就要用到批处理中的循环语句FOR,其语法还挺有深度,这里我们使用最基础的不带参数型:

for %%i in (*) do (PotPlayerMini64 %%i)

其中%%i表示取当前路径下的文件,do后面是执行语句!使用PotPlayer可执行exe应用来打开该文件!【PS:我在PATH环境中加了PotPlayer软件路径,因此可直接使用,否则需要写上全路径地址!如:D:\Pot_Player64_1.7.21516_Dev_20210716\PotPlayer64\PotPlayerMini64.exe

好了,准备好文件,如下图所示:
image

把批处理文件放入媒体文件同目录下,我们执行尝试...
发现了两个问题:
.bat批处理执行是阻塞型应用,也就是单任务执行机制,即当上一条指令完全执行完毕才能执行下一条,因此无法实现同时打开的需求!!
㈡ PotPlayer无法打开任意格式的文件,如.bat批处理文件,如下图:
image

完善

针对问题,进行改善:

for %%i in (*.mp4) do (start cmd /k PotPlayerMini64 %%i)

指定需要遍历的文件格式,为mp4,而执行操作是:每次调取单独的cmd命令来打开播放器,这里使用了startcmd命令,加了/k参数,即可以看到cmd窗口中调取指令情况,如图:
image
如果想执行完毕cmd自动关闭cmd窗口,可以换/c。从简的话也可以省略cmd命令,如:

for %%i in (*.mp4) do (start PotPlayerMini64 %%i)

OK!!!基本需求以及达到了。

进一步

还可以拓展...比如批处理文件放在单独的路径下来执行,可以这样修改:

cd ToPlay
for %%i in (*) do (start cmd /k PotPlayerMini64 %%i)

其中的ToPlay文件夹存放待播放的媒体文件。
当然还可以基于参数传入来执行批处理任务,如:

cd %1
for %%i in (*) do (start cmd /k PotPlayerMini64 %%i)

然后在cmd中执行该.bat,如图:
image
【PS】还有一种方法是在资源管理器中将ToPlay文件夹拖放到.bat上松开执行!

总结

现在基本上可以很轻松地实现想要的效果了。当然啦,还能再改善功能,例如可以进一步筛选目录下的某某文件来播放,或者定义每次开启播放器的间隔时长等等。还可以将这些功能包装成GUI可视的窗口应用。。。
有个细节想说明一下,如果cmd这样调用:

PotPlayerMini64 filename

即不加后缀名调用,那么播放器是只开不放的,也没有将该媒体文件加入至播放列表中,要想正常开启并播放则需要加上后缀名。

总之,这个小需求网上有人在问怎么实现,但很少有博文可参考,本人竟然没找到,故此小结了这篇文章,而且可以触类旁通,拓展到其他应用都可以借此方法同时开启并调用某某文件,希望对读者有帮助,感谢!!

标签:bat,为例,%%,cmd,PotPlayerMini64,批处理,PotPlayer,执行
From: https://www.cnblogs.com/sharpeye/p/16838676.html

相关文章

  • 在 MyBatis 中使用 <、<= 等特殊符号
    在实际的开发中,经常会遇到一些场景,比如查询小于某个时间,或者是查询小于某个年龄等。这个时候就需要在MyBatis的XML文件中使用一些>=、<=等符号,但是如果直接使用的话......
  • 《MyBatis从入门到精通》读书笔记
    第一章mybatis入门第二章mybatisxml基本使用第三章mybatis注解基本使用不推荐的使用方法。优点:对于需求简单的系统,效率较高;缺点:SQL变化时,需要重新编译代码。四个......
  • MyBatis关联查询基础 | Java
    mybatis关系映射1.用户与订单的关系一个用户有多个订单,一个订单只属于一个用户查询一个用户的所有订单属于一对多查询示例publicinterfaceUserMapper{@......
  • Mybatis 之 自定义插件 yyyy-MM
    请结合上一篇>>> MP插件原理  <<<  以及  >>>  Mybatis插件原理 <<< 进行查看查看 使用场景:在写一些与月份为单位的场景中,如:薪资系统(月薪制)1、Ja......
  • Spring整合Mybatis
    spring中整合mybatis一先添加spring框架1.创建一个maven项目2.在pom.xml中添加springjar包<!--Spring--><dependency><groupId>org.springframework</groupI......
  • Mybatis 之 自定义别名处理插件
    请结合上一篇>>> MP插件原理  <<<  以及  >>>  Mybatis插件原理 <<< 进行查看查看 MP开发中,遇到的问题,动态的Wrapper产生的SQL中,主要出现在组合......
  • Mybatis 之 SQL 监控插件
    请结合上一篇>>> MP插件原理  <<<  以及 >>>  Mybatis插件原理 <<< 进行查看查看 使用场景:开发过程中监控每一条SQL语句的执行时长,已经顺便将SQL......
  • Mybatis 之 Mybatis-Plus 插件
    请结合上一边 >>> Mybatis插件原理<<< 进行查看Mybatis中自己定义了一个自己的插件类接口 InnerInterceptor 其内部实现了一些现成的插件,如:PaginationInn......
  • MyBatis
    MyBatisMybatis简介原始jdbc操作的分析原始jdbc开发存在的问题如下:数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql语句在代码中硬编码,造成代码不易......
  • Mybatis 之 插件原理
    核心代码简介MyBatis插件原理:责任链模式  + JDK动态代理 ( 接口、代理对象、代理类:实现 jdk的 InvocationHandler)Mybatis 插件核心接口:Interceptor/***......