首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个m3u文件的批处理

多个m3u文件的批处理
EN

Stack Overflow用户
提问于 2020-03-08 01:33:26
回答 1查看 410关注 0票数 1

我正在使用此批处理文件创建.m3u播放列表,但它在单个播放列表中创建

代码语言:javascript
复制
@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 "&"

包含文件的文件夹结构,示例:

代码语言:javascript
复制
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

...etc

示例脚本输出(playlist.m3u):

代码语言:javascript
复制
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
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,例如播放列表:

文件夹:

代码语言:javascript
复制
20000 Lieus sous les Mers (1988)(Coktel Vision)
Zombi (1990)(Ubisoft)

等等。

批处理文件将创建m3u播放列表

20000 Lieus sous les (20000)(可口可乐视觉).m3u

代码语言:javascript
复制
/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

Zombi (1990)(育碧).m3u

代码语言:javascript
复制
/Zombi (1990)(Ubisoft)/Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk
/Zombi (1990)(Ubisoft)/Zombi (1990)(Ubisoft)(fr)(Disk 2 of 2).dsk

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-08 08:18:40

代码语言:javascript
复制
@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是名称和扩展名。

原始代码看起来不适合这项任务,所以重写了代码,而不是代码改编。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60580382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档