Windows批处理文件文件通配

时间:2010-11-25 20:39:09

标签: batch-file wildcard glob

简而言之,我想将此bash表达式移植到Windows批处理文件中:

echo {foo,bar,baz}/*.{agent,event,plan}

目前我使用的是echo foo/*.agent foo/*.event foo/*.plan bar/*.agent etc...,但随着目录数量的增加以及一些新扩展的使用,修改此行非常烦人。

1 个答案:

答案 0 :(得分:0)

每行一个(不确定是否可以):

@echo off
for %%A in (foo,bar,baz) do (
 for %%B in (agent,event,plan) do echo %%A/*.%%B
)

对于所有人来说,你可能需要一个黑客:

@echo off
SETLOCAL ENABLEEXTENSIONS
for %%A in (foo,bar,baz) do (
 for %%B in (agent,event,plan) do (SET /P "dummy=%%A/*.%%B ") < NUL
)
echo.

视为文件和文件夹列表(仅打印现有文件):

@echo off
SETLOCAL ENABLEEXTENSIONS
for %%A in (foo,bar,baz) do (
    for %%B in (agent,event,plan) do (
        for %%C in (%%A/*.%%B) do (SET /P "dummy=%%A/%%~nxC ") < NUL
    )
)
echo.