如何将完整路径作为dir的参数?
FOR %%a IN (dir *.wav /s /b) DO (prop.bat %%a)
答案 0 :(得分:2)
有两种方法可以做到这一点
您可以使用for
命令递归迭代文件集并使用replaceable参数检索文件信息
您可以使用dir /s /b
命令检索文件列表并使用for /f
命令处理此列表
但是你和两者都混合了,这不起作用。另外,要从另一个批处理文件调用批处理文件,您需要使用call
命令,否则执行将不会从被调用者返回给调用者。
使用for
递归(/r
)命令
for /r %%a in (*.wav) do ( call prop.bat "%%a" )
使用for /f
处理dir
命令
for /f "delims=" %%a in ('dir /s /b *.wav') do ( call prop.bat "%%a" )
在第一种情况下,可替换参数(%%a
)是对文件的引用,并且当我们使用递归搜索时,它将包含被引用文件的完整路径。如果for
不是递归的,%%a
将只提供文件名和扩展名,并且需要使用可替换的参数修饰符:%%~fa
将返回文件的完整路径。 / p>
在第二种情况下,可替换参数不是通过文件引用而是通过dir
命令生成的输出行进行迭代。使用/s /b
开关时,行已包含每个文件的完整路径。