У меня есть большая коллекция телесериалов, хранящихся на коробке 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
Итак, у меня есть один из этих командных файлов в каждом каталоге (по одному на телешоу), а также в родительской папке (ТВ), и мои пользователи могут включить случайный выбор в WMP, VLC или w/e плеере, который им нравится, и просто щелкнуть список воспроизведения. чтобы посмотреть что-нибудь случайное, или, точнее, случайный эпизод определенного шоу.
Итак, на мой вопрос: почему мой конвейерный вывод не в алфавитном порядке? Я действительно хочу выполнить это в MS-DOS / CMD, поскольку программирование не является моей компетенцией, и это в значительной степени предел моих возможностей со сценариями или чем-либо еще. Я полагаю, что команду FIND можно было бы использовать более элегантно для фильтрации определенных типов файлов, и я подозреваю, что в этом заключаются мои проблемы с попыткой сортировки вывода. Даже списки воспроизведения для конкретных шоу имеют случайный порядок сортировки (файлы в сезонах расположены в алфавитном порядке, но порядок сезонов выглядит случайным). процедура вывода.
Любая помощь будет оценена по достоинству.
-T.J.