cla*_*amp 31 windows directory batch-file
我想以递归方式列出mp3从给定目录结束的所有文件的绝对路径,该目录应作为相对目录给出.
然后我想从文件中删除目录,并且我已经读过在for-scope 中的变量必须用!s 括起来.是对的吗?
我当前的代码如下所示:
for /r %%x in (*.mp3) do (
set di=%%x
echo directory !di!
C:\bla.exe %%x !di!
)
Run Code Online (Sandbox Code Playgroud)
Mat*_*ted 78
使用命令DIR:
dir /s/b *.mp3
Run Code Online (Sandbox Code Playgroud)
上面的命令将搜索当前路径及其所有子节点.要获取有关如何使用此命令的更多信息,请打开命令窗口并键入DIR /?.
下面的批处理文件演示了如何从for循环中的变量中提取文件名的元素.将其另存为文件listfiles.bat,然后运行"listfiles some\folder*.mp3".
我将文件查找设置为批处理文件中的子例程,以便您可以将其插入到自己的脚本中.
你也可以运行"for /?" 在cmd shell中有关该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
Run Code Online (Sandbox Code Playgroud)