bat在多个文件夹中生成m3u文件,不包括特定的扩展名



我有以下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汤姆有文件c.txt,d.txtSusan有文件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,就不需要@

    最新更新