bat在多个文件夹中生成不包括特定扩展名的m3u文件
bat to generate m3u files in multiple folders excluding specific extension
我有以下 bat 文件,它将查看目录中的每个子文件夹并创建一个列出该子文件夹内容的 m3u 文件:
@echo off
for /d %%A in (*) do @if exist "%%~A\*" (
for %%B in ("%%~A\*") do @echo %%~nxB
) > "%%~A\%%~nxA.m3u"
示例:
我名为 Names 的目录有子文件夹 Paul、Tom、Susan。
Paul 有文件 a.txt、b.txt
Tom 有文件 c.txt、d.txt
苏珊有文件 e.txt、f.txt
运行Names目录下的bat文件。它将创建:
- Paul 子文件夹中的 Paul.m3u 文件
- Tom 子文件夹中的 Tom.m3u 文件
- Susan 子文件夹中的 Susan.m3u 文件
每个 m3u 文件将列出该子文件夹的文件,每行一个文件。
我遇到的问题是 m3u 文件也列出了 m3u 文件本身。我不要那个。
当前输出:
a.txt
b.txt
Paul.m3u
想要的输出:
a.txt
b.txt
我认识到问题出在我的循环中,它不排除 .m3u 文件扩展名,但我不确定如何实现它。有什么指点吗?
for %%B in ("%%~A\*") do if "%%~nxB" neq "%%~nxA.m3u" @echo %%~nxB
[未测试]
应该做你想做的,不包括正在创建的 .mp3 文件的 name.ext 部分。
请注意,一旦执行了 @echo off
,就不再需要 @
。
我有以下 bat 文件,它将查看目录中的每个子文件夹并创建一个列出该子文件夹内容的 m3u 文件:
@echo off
for /d %%A in (*) do @if exist "%%~A\*" (
for %%B in ("%%~A\*") do @echo %%~nxB
) > "%%~A\%%~nxA.m3u"
示例: 我名为 Names 的目录有子文件夹 Paul、Tom、Susan。 Paul 有文件 a.txt、b.txt Tom 有文件 c.txt、d.txt 苏珊有文件 e.txt、f.txt
运行Names目录下的bat文件。它将创建:
- Paul 子文件夹中的 Paul.m3u 文件
- Tom 子文件夹中的 Tom.m3u 文件
- Susan 子文件夹中的 Susan.m3u 文件
每个 m3u 文件将列出该子文件夹的文件,每行一个文件。
我遇到的问题是 m3u 文件也列出了 m3u 文件本身。我不要那个。
当前输出:
a.txt
b.txt
Paul.m3u
想要的输出:
a.txt
b.txt
我认识到问题出在我的循环中,它不排除 .m3u 文件扩展名,但我不确定如何实现它。有什么指点吗?
for %%B in ("%%~A\*") do if "%%~nxB" neq "%%~nxA.m3u" @echo %%~nxB
[未测试]
应该做你想做的,不包括正在创建的 .mp3 文件的 name.ext 部分。
请注意,一旦执行了 @echo off
,就不再需要 @
。