批处理多个 m3u 文件
Batch for multiple m3u files
我正在使用这个批处理文件来创建 .m3u 播放列表,但它是在单个播放列表中创建的
@echo on
color 0e
echo PLEASE WAIT, BUILDING PLAYLIST FILE, EXCLUDING BAT, TXT, M3U, SRT and JPG FILES
if exist "playlist.m3u" del "playlist.m3u"
Setlocal EnableDelayedExpansion
set "_t0=1"
if "%CD%"=="%CD:~0,3%" set "_t0=0"
for /F "tokens=*" %%A In ('dir %* /a-d /b /on /s ^| %SystemRoot%\System32\findstr.exe /V /I /E /L ".bat .m3u .txt .db .srt .jpg" ^| %SystemRoot%\System32\sort.exe') do (
set "_t1=%%A"
set "_t2=!_t1:%CD%=!"
echo !_t2:~%_t0%!>>playlist.m3u
)
endlocal
此批处理文件已到达此处Windows Batch Files and "&"
包含文件的文件夹结构,示例:
20000 Lieus sous les Mers (1988)(Coktel Vision)
20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 1 of 2)[CPM Version].dsk
20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 2 of 2)[CPM Version].dsk
Zombi (1990)(Ubisoft)
Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
...等等
示例脚本输出 (playlist.m3u):
20000 Lieus sous les Mers (1988)(Coktel Vision)000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 1 of 2)[CPM Version].dsk
20000 Lieus sous les Mers (1988)(Coktel Vision)000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 2 of 2)[CPM Version].dsk
Zombi (1990)(Ubisoft)\Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
Zombi (1990)(Ubisoft)\Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
等...
我想调整批处理,以便根据文件夹名称创建多个 m3u,例如播放列表:
文件夹:
20000 Lieus sous les Mers (1988)(Coktel Vision)
Zombi (1990)(Ubisoft)
等...
批处理文件将创建 m3u 播放列表
20000 Lieus sous les Mers (1988)(Coktel Vision).m3u
/20000 Lieus sous les Mers (1988)(Coktel Vision)/20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 1 of 2)[CPM Version].dsk
/20000 Lieus sous les Mers (1988)(Coktel Vision)/20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 2 of 2)[CPM Version].dsk
僵尸 (1990)(育碧).m3u
/Zombi (1990)(Ubisoft)/Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
/Zombi (1990)(Ubisoft)/Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
你能帮帮我吗?
@echo off
for /d %%A in (*) do @if exist "%%~A\*.dsk" (
for %%B in ("%%~A\*.dsk") do @echo \%%~A\%%~nxB
) > "%%~fA\%%~nxA.m3u"
此脚本设置为 运行 在子文件夹所在的当前工作目录中。
for /d
将获取子文件夹。
if exist
确保 *.dsk
文件在写入 .m3u 文件之前存在。
for
迭代 .dsk 文件并回显 .m3u 文件的路径。
查看 for /?
修饰符的使用 fnx
即 %%~fA
是完整路径,%%~nxA
是名称和扩展名。
原始代码看起来不适合该任务,因此重写了代码,而不是代码改编。
我正在使用这个批处理文件来创建 .m3u 播放列表,但它是在单个播放列表中创建的
@echo on
color 0e
echo PLEASE WAIT, BUILDING PLAYLIST FILE, EXCLUDING BAT, TXT, M3U, SRT and JPG FILES
if exist "playlist.m3u" del "playlist.m3u"
Setlocal EnableDelayedExpansion
set "_t0=1"
if "%CD%"=="%CD:~0,3%" set "_t0=0"
for /F "tokens=*" %%A In ('dir %* /a-d /b /on /s ^| %SystemRoot%\System32\findstr.exe /V /I /E /L ".bat .m3u .txt .db .srt .jpg" ^| %SystemRoot%\System32\sort.exe') do (
set "_t1=%%A"
set "_t2=!_t1:%CD%=!"
echo !_t2:~%_t0%!>>playlist.m3u
)
endlocal
此批处理文件已到达此处Windows Batch Files and "&"
包含文件的文件夹结构,示例:
20000 Lieus sous les Mers (1988)(Coktel Vision)
20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 1 of 2)[CPM Version].dsk
20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 2 of 2)[CPM Version].dsk
Zombi (1990)(Ubisoft)
Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
...等等
示例脚本输出 (playlist.m3u):
20000 Lieus sous les Mers (1988)(Coktel Vision)000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 1 of 2)[CPM Version].dsk
20000 Lieus sous les Mers (1988)(Coktel Vision)000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 2 of 2)[CPM Version].dsk
Zombi (1990)(Ubisoft)\Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
Zombi (1990)(Ubisoft)\Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
等...
我想调整批处理,以便根据文件夹名称创建多个 m3u,例如播放列表:
文件夹:
20000 Lieus sous les Mers (1988)(Coktel Vision)
Zombi (1990)(Ubisoft)
等...
批处理文件将创建 m3u 播放列表
20000 Lieus sous les Mers (1988)(Coktel Vision).m3u
/20000 Lieus sous les Mers (1988)(Coktel Vision)/20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 1 of 2)[CPM Version].dsk
/20000 Lieus sous les Mers (1988)(Coktel Vision)/20000 Lieus sous les Mers (1988)(Coktel Vision)(fr)(Disk 2 of 2)[CPM Version].dsk
僵尸 (1990)(育碧).m3u
/Zombi (1990)(Ubisoft)/Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
/Zombi (1990)(Ubisoft)/Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
你能帮帮我吗?
@echo off
for /d %%A in (*) do @if exist "%%~A\*.dsk" (
for %%B in ("%%~A\*.dsk") do @echo \%%~A\%%~nxB
) > "%%~fA\%%~nxA.m3u"
此脚本设置为 运行 在子文件夹所在的当前工作目录中。
for /d
将获取子文件夹。
if exist
确保 *.dsk
文件在写入 .m3u 文件之前存在。
for
迭代 .dsk 文件并回显 .m3u 文件的路径。
查看 for /?
修饰符的使用 fnx
即 %%~fA
是完整路径,%%~nxA
是名称和扩展名。
原始代码看起来不适合该任务,因此重写了代码,而不是代码改编。