我在 NAS 盒子上收藏了大量电视连续剧,通过 samba 和 dlna 在我家中共享媒体。为了启用随机功能,我创建了一个如下的批处理脚本来制作播放列表文件:
@Echo Off
color 0e
Echo PLEASE WAIT, BUILDING PLAYLIST FILE, EXCLUDING ALL BAT, TXT, M3U, SRT and JPG FILES
del "playlist.m3u"
Setlocal EnableDelayedExpansion
set _tmp=%1
Set _t0=1
If ["%CD%"]==["%CD:~0,3%"] Set _t0=0
For /F "tokens=*" %%A In ('Dir "%*" /a-d /b /on /s ^|find /v ".bat"^| find /v ".m3u"^|find /v ".txt"^| find /v ".srt"^|find /v ".jpg"') Do (
Set _t1=%%A
Set _t2=!_t1:%CD%=!
Echo !_t2:~%_t0%!)>>playlist.m3u
所以,我在每个目录(每个电视节目一个)以及父文件夹(TV)中都有这些批处理文件之一,我的用户可以在他们喜欢的 WMP、VLC 或 w/e 播放器中启用随机,只需单击播放列表随机观看任何东西,或者更具体地说是特定节目的随机剧集。
那么,关于我的问题:为什么我的管道输出不是按字母顺序排列的?我真的很想在 MS-DOS / CMD 中完成这项工作,因为编程不是我的专长,这几乎是我编写脚本或其他任何东西的能力的限制。我想 FIND 命令可以更优雅地用于过滤掉特定的文件类型,我怀疑这就是我尝试对输出进行排序的问题。即使是特定于节目的播放列表似乎也有随机排序顺序(季节内的文件是按字母顺序排列的,但季节顺序似乎是随机的)输出过程。
任何帮助,将不胜感激。
-TJ