【发布时间】:2011-05-15 21:45:27
【问题描述】:
简而言之,我想将此 bash 表达式移植到 Windows 批处理文件中:
echo {foo,bar,baz}/*.{agent,event,plan}
目前我使用echo foo/*.agent foo/*.event foo/*.plan bar/*.agent etc...,但随着目录数量的增长和一些新扩展的使用,修改这一行变得非常烦人。
【问题讨论】:
标签: batch-file wildcard glob
简而言之,我想将此 bash 表达式移植到 Windows 批处理文件中:
echo {foo,bar,baz}/*.{agent,event,plan}
目前我使用echo foo/*.agent foo/*.event foo/*.plan bar/*.agent etc...,但随着目录数量的增长和一些新扩展的使用,修改这一行变得非常烦人。
【问题讨论】:
标签: batch-file wildcard glob
每行一个(不确定是否可以):
@echo off
for %%A in (foo,bar,baz) do (
for %%B in (agent,event,plan) do echo %%A/*.%%B
)
对于所有内容,您可能需要一个 hack:
@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.
【讨论】: