for /f "delims=" %%A in ('dir /a:d /b /s "PHASE *"') do (
xcopy /y "%%~A" "MASTER FOLDER\%%~nxA\"
)
Посмотрите на for /?
, и вы увидите:
(набор) Указывает набор из одного или нескольких файлов.Можно использовать подстановочные знаки.
PHASE 1
- это имя папки, которое, по-видимому, является недопустимым значением для (set)
.
Вместо for /r
, for /f
с использованиемКоманда dir
может получить пути к каталогам, которые соответствуют шаблону с подстановочными знаками.
Приведенный выше код использует dir
для получения каталогов с /a:d
, рекурсивно с /s
и возвращает в голом формате с /b
.
Параметр for /f
delims=
обеспечивает возврат каждого пути без разбиения на токены.
xcopy
копирует каждый соответствующий путь к каталогу в каталог MASTER FOLDER
.
Если вам необходимо убедиться, что подстановочный знак шаблона PHASE *
совпадает с цифрами, тогда dir
можно передать в findstr
для фильтрации возвращаемых путей.