借用【.bat 批处理】实现同时播放多个视频 · 以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】
好了,準備好文件,如下圖所示:
把批處理文件放入媒體文件同目錄下,我們執行嘗試...
發現了兩個問題:
㈠ .bat批處理執行是阻塞型應用,也就是單任務執行機制,即當上一條指令完全執行完畢才能執行下一條,因此無法實現同時打開的需求!!
㈡ PotPlayer無法打開任意格式的文件,如.bat批處理文件,如下圖:
完善
針對問題,進行改善:
for %%i in (*.mp4) do (start cmd /k PotPlayerMini64 %%i)
指定需要遍歷的文件格式,為mp4,而執行操作是:每次調取單獨的cmd命令來打開播放器,這里使用了start和cmd命令,加了/k參數,即可以看到cmd窗口中調取指令情況,如圖:
如果想執行完畢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,如圖:
【PS】還有一種方法是在資源管理器中將ToPlay文件夾拖放到.bat上松開執行!
總結
現在基本上可以很輕松地實現想要的效果了。當然啦,還能再改善功能,例如可以進一步篩選目錄下的某某文件來播放,或者定義每次開啟播放器的間隔時長等等。還可以將這些功能包裝成GUI可視的窗口應用。。。
有個細節想說明一下,如果cmd這樣調用:
PotPlayerMini64 filename
即不加后綴名調用,那么播放器是只開不放的,也沒有將該媒體文件加入至播放列表中,要想正常開啟并播放則需要加上后綴名。
總之,這個小需求網上有人在問怎么實現,但很少有博文可參考,本人竟然沒找到,故此小結了這篇文章,而且可以觸類旁通,拓展到其他應用都可以借此方法同時開啟并調用某某文件,希望對讀者有幫助,感謝!!
總結
以上是生活随笔為你收集整理的借用【.bat 批处理】实现同时播放多个视频 · 以PotPlayer播放器为例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongodb(2)
- 下一篇: C#开发手册