私は、家中で samba と dlna を介してメディアを共有する NAS ボックスにテレビ シリーズの大規模なコレクションを置いています。ランダム機能を有効にするために、次のようにバッチ スクリプトを作成してプレイリスト ファイルを作成しました。
@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
したがって、これらのバッチ ファイルの 1 つを各ディレクトリ (テレビ番組ごとに 1 つ) と親フォルダー (TV) に配置し、ユーザーは WMP、VLC、または w/e プレーヤーでランダムを有効にして、プレイリストをクリックするだけです。ランダムなもの、より具体的には特定の番組のランダムなエピソードを見る。
それでは、私の質問に進みましょう: パイプ出力がアルファベット順でないのはなぜですか? プログラミングは私の専門知識ではないため、MS-DOS / CMDでこれを実現したいと思っています。これは、スクリプト作成などの私の能力の限界です。FIND コマンドをよりエレガントに使用して、特定のファイルの種類を除外できると思いますが、出力を並べ替えようとする際の問題がそこにあるのではないかと思います。番組固有のプレイリストでさえ、ランダムな並べ替え順になっているように見えます (シーズン内のファイルはアルファベット順ですが、シーズン順はランダムに表示されます)。出力手順。
どんな助けでも大歓迎です。
-TJ