我怎样才能获得完整的路径作为dir的参数?

时间:2016-08-30 10:09:19

标签: batch-file cmd

如何将完整路径作为dir的参数?

FOR %%a IN (dir *.wav /s /b) DO (prop.bat %%a)

1 个答案:

答案 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开关时,行已包含每个文件的完整路径。