Пакетное именование Windows в Windows - PullRequest
1 голос
/ 25 ноября 2010

Короче говоря, я хотел бы перенести это выражение bash в пакетный файл Windows:

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

В настоящее время я использую echo foo/*.agent foo/*.event foo/*.plan bar/*.agent etc..., но по мере увеличения количества каталогов и некоторыхновые расширения используются, это очень утомительно, чтобы изменить эту строку.

1 Ответ

0 голосов
/ 25 ноября 2010

По одному на строку (не уверен, что это нормально):

@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.
...