1

Прямо сейчас у меня есть следующая структура

Folder 1\ 
      -Apr2007\folder 1
              \folder 2
              \folder 3
      -May 2007\folder 23
              \folder 24
              \folder 25
      -June 2007
              \folder 41
              \folder 42
              \folder 43

      -etc all the way to 2018

Как я могу скопировать подпапки и их содержимое по месяцам, чтобы они все были в одном каталоге? Я пытался использовать команду For /f, но я не знаю, как указать в ней 2 символа подстановки. Мне нужен подстановочный знак для месяца, а также один для имени подпапки, так как они все разные.

Я хотел бы следующий вывод:

New folder\
              folder 1\
              folder 2\
              folder 3\
              folder 23\
              folder 24\
              folder 25\
              folder 41\
              folder 42\
              folder 43\

1 ответ1

1

Вам просто нужно два вложенных for циклов:-

for /d %d in ("\Full\Path\To\Folder 1"\*) do ( cd "%d" & for /d %s in (*) do xcopy /s "%s"\* "\Full\Path\To\New folder\%s"\ )

Если вы поместите его в пакетный файл, вам нужно удвоить знаки % .

Использование cd - один из вариантов, но вы также можете использовать полные пути к каталогам, хотя для определения целевого пути потребуется разбор переменных.

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