Цикл for %%b
в вашем коде ищет файлов , соответствующих шаблонам AB*
и FG*
в текущем каталоге.
Вы можете сделать это:
@echo off
set "yourDir=C:\FileStore"
pushd "%yourDir%" && (
for /D %%a in ("AB*","FG*") do (
echo %%~fa
)
popd
)
В качестве альтернативы вы можете написать "%yourDir%\AB*","%yourDir%\FG*"
за in
, но использование pushd
и popd
исключает необходимость избыточного указания корневого каталога.
Или вы можете сделать это:
@echo off
set "yourDir=C:\FileStore"
for %%b in ("AB","FG") do (
for /D %%a in ("%yourDir%\%%~b*") do (
echo %%~fa
)
)
Поскольку в предложении in
цикла for %%b
больше нет подстановочных знаков, элементы возвращаются нетронутыми без поиска в файловой системе соответствующих файлов. Цикл for /D %%a
теперь содержит подстановочный знак, поэтому он фактически ищет соответствующие непосредственные подкаталоги.