Как я могу рекурсивно копировать структуру каталогов и копировать только файлы на нижнем уровне (Windows Batch) - PullRequest
1 голос
/ 08 декабря 2011

Моя структура каталогов выглядит так:

folder1
  folder2 (thousands of folders like this)
    folder3
        someImage.jpeg
        someDoc.doc
        folder4 (optional folder)
           someImage.jpeg
           someDoc.doc

Я хочу, чтобы скрипт копировал папку 2s, которая содержит папку 4s, сохраняя структуру папки, но копируя только файлы в папке 4. Вот так;

folder1
  folder2 (thousands of folders like this)
    folder3
      folder4 (optional folder)
        someImage.jpeg
        someDoc.doc

У меня есть простой цикл for, который может идентифицировать папки, содержащие папку 4, а затем Robocopy файлы в какой-то каталог. Я не могу понять, как скопировать всю структуру папок, пропуская файлы в папке 3.

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

В команде xcopy есть опция, которая создает дерево каталогов.

  /T           Creates directory structure, but does not copy files. Does not
               include empty directories or subdirectories. /T /E includes
               empty directories and subdirectories.

Сначала сделайте это, а затем просто скопируйте файлы в папке 4s.

1 голос
/ 13 декабря 2011

Как отметил @Andryi в своем комментарии, вы не можете однозначно определить, является ли папка минимально возможной в древовидной структуре.Поэтому вы должны заранее решить, какой из них вы хотите считать достаточно низким, чтобы начать копирование.Предположим, вы решили, что это папка четвертая в структуре.В этом случае используйте этот код, чтобы начать работу.

@echo off
for /d %%a in (*.*) do (
  echo  %%a
  for /d %%b in (%%a\*.*) do (
    echo  %%b
    for /d %%c in (%%b\*.*) do (
      echo  %%c
      for /d %%d in (%%c\*.*) do (
        echo  %%d
        for    %%f in (%%d\*.*) do (
          echo  %%f
        )
      )
    )
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...