Я хотел бы добавить подпапки с одинаковыми именами в несколько папок, которые в настоящее время имеют следующую структуру:

V:/fixed name/ABC/fixed Name/

где "Азбука" представляет собой изменяющуюся комбинацию из трех букв.

Я нашел следующий код, но он не может принять мой "*" подстановочный знак для "ABC".

FOR /d %A IN (V:/fixed name/ABC/fixed Name/) DO mkdir "%A\14c"

Любая помощь будет оценена.

Ура, никма

2 ответа2

1

Из командной строки:

FOR /D %A IN ("V:\fixed name\*") DO mkdir "%A\fixed name\14c"

В пакетном файле:

FOR /D %%A IN ("V:\fixed name\*") DO mkdir "%%A\fixed name\14c"
1

Это будет работать, но разрешено только ОДИН «*»:

@echo off
setlocal
set pre=
set post=
set pattern=%~1
for /f "tokens=1,2 delims=*" %%p in ("%pattern%") do (
   set pre=%%p
   set post=%%q
)
pushd %pre%
for /f %%d in ('dir /b /ad') do @md %%d%post% && echo added: %%d%post%
popd  

Путь до подстановочного знака должен существовать. Здесь мы ищем все папки (= подстановочный знак) и добавляем путь, следующий за аргументом подстановочного знака. Это также может быть дерево папок (mkwild C:\users\me\test\*\first\second).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .