通过.bat迭代目录中的特定文件

时间:2012-02-18 08:25:10

标签: windows batch-file console

我尝试创建bat文件,只通过目录中的文件名以特定单词开头的文件进行迭代。 例如:
companyName .module1.exe
的companyName .module2.dll

我知道如何迭代文件,但不知道如何检查其名称是否符合特定条件。

2 个答案:

答案 0 :(得分:1)

将以下内容添加到批处理文件中:

for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)

此脚本将echo当前工作目录中以 companyName 前缀开头的所有文件(仅限文件)。将echo替换为您要执行的任何其他命令。

更新1 :要查看其他目录,您可以

for /F "eol=: tokens=*" %%A in ('dir /A-D /B "pathToLookIn/companyName*"') do (echo %%~fA)

pushd \ & cd "pathToLookIn" & (for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)) & popd

pathToLookIn 是完全限定或相对路径。

更新2 :我已更新for /F循环以处理以@dbenham建议的;开头的文件名。

答案 1 :(得分:1)

好吧,如果您知道如何迭代文件,那么只需使用这些知识:

for %%f in (companyName*) do (
  ...
)

请注意,迭代dir的输出很容易出错,并且在许多情况下会破坏Unicode字符。由于for能够直接迭代,因此很少需要使用劣质选项。