批量循环访问某些文件

时间:2013-07-31 15:23:52

标签: batch-file cmd

我有一个包含.sql文件的目录,如

file.xxx.v3.0.sql
file.xxx.v3.0.sql
file.xxx.v3.0.sql
file.xxx.v3.0.sql

在.bat文件中,我如何遍历以" file开头的目录中的所有文件。"并以" .v3.0.sql"?

结束

到目前为止,我已经

for /f %%b in ('dir /b /s "%apppath%\files\*.sql"') do call :import %%b

2 个答案:

答案 0 :(得分:2)

这适用于您的情况:

for /f %%b in ('dir /b /s "%apppath%\files\file.*.v3.0.sql"') do call :import %%b

你也可以使用这样的大括号:

for /f %%b in ('dir /b /s "%apppath%\files\file.*.v3.0.sql"') do (
    call :import %%b
    ...
)

答案 1 :(得分:2)

放弃for /f路线。有龙(对于Unicode字符和空格,尤其是 - 最好不要接受任何坏习惯)。

你可以使用普通的for,它可以很好地迭代文件:

for %%b in (%apppath%\files\file.*.v3.0.sql) do (
  call :import %%b
)