如何在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”
。