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文件。它将创建:

每个 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,就不再需要 @