如何在Windows.bat文件中递归列出*.mp3类型的所有文件?

如何在Windows.bat文件中递归列出*.mp3类型的所有文件?,windows,directory,batch-file,Windows,Directory,Batch File,我想递归地列出给定目录中以mp3结尾的所有文件的绝对路径,该目录应作为相对目录给出 然后,我还想从文件中删除目录,我已经读到了范围中的变量必须包含在中s。是这样吗 我当前的代码如下所示: for /r %%x in (*.mp3) do ( set di=%%x echo directory !di! C:\bla.exe %%x !di! ) 使用命令DIR: dir /s/b *.mp3 上述命令将搜索当前路径及其所有子路径。要获取有关如何使用此命令的详细信息,

我想递归地列出给定目录中以
mp3
结尾的所有文件的绝对路径,该目录应作为相对目录给出

然后,我还想从文件中删除目录,我已经读到了
范围中的变量必须包含在
s。是这样吗

我当前的代码如下所示:

for /r %%x in (*.mp3) do (
    set di=%%x
    echo directory !di!
    C:\bla.exe  %%x !di!
)

使用命令
DIR

dir /s/b *.mp3

上述命令将搜索当前路径及其所有子路径。要获取有关如何使用此命令的详细信息,请打开命令窗口并键入
DIR/?

下面的批处理文件演示如何从
for
循环中的变量提取文件名元素。将此保存为文件
listfiles.bat
,然后运行“listfiles some\folder*.mp3”

我将文件查找设置为批处理文件中的一个子例程,以便您可以将其插入到自己的脚本中

您还可以在cmd shell中运行“for/?”以了解有关
for
命令的详细信息

@echo off
setlocal enableextensions enabledelayedexpansion
call :find-files %1 %2
echo PATHS: %PATHS%
echo NAMES: %NAMES%
goto :eof

:find-files
    set PATHS=
    set NAMES=
    for /r "%~1" %%P in ("%~2") do (
        set PATHS=!PATHS! "%%~fP"
        set NAMES=!NAMES! "%%~nP%%~xP"
    )
goto :eof

这也适用于显式目录:
dir/s/b“c:\My music\*.mp3”