3

Я хотел бы знать, как скопировать все папки в новое место, но я хочу только включить сами папки - ничего, что находится внутри них (то есть никаких подпапок и никаких файлов). Это возможно?

Также, в связи с этим, есть также способ скопировать все папки, а также подпапки в этих папках, но только глубиной в 1 уровень (таким образом, только прямые дочерние папки, а не дочерние в дочерних элементах), и при этом все еще не скопированные файлы.

Я готов сделать это любым способом - из командной строки или с помощью утилиты.

2 ответа2

2

Используйте утилиту Microsoft robocopy .

robocopy SOURCE_FOLDER DEST_FOLDER /E /LEV:1 /XF * 

Опции:

  • /E Копировать подпапки, включая пустые подпапки
  • /LEV:1 Скопируйте только верхние n LEVels исходного дерева.
  • /XF * eXclude Файлы, соответствующие заданным именам / путям / групповым символам.

Источник: http://ss64.com/nt/robocopy.html

0

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

set newlocation=c:\...
@for /f "tokens=3,4" %i in ('dir') do @if "%i" equ "<DIR>" if "%j" neq "." if "%j" neq ".." mkdir %newlocation%\%j

Если вы хотите углубиться на один уровень, повторите цикл for еще раз:

@for /f "tokens=3,4" %i in ('dir') do @if "%i" equ "<DIR>" if "%j" neq "." if "%j" neq ".." mkdir %newlocation%\%j && for /f "tokens=3,4" %u in ('dir %j') do @if "%u" equ "<DIR>" if "%v" neq "." if "%v" neq ".." mkdir %newlocation%\%j\%v

Обратите внимание, что если вы хотите поместить это в пакетный файл, замените все % на %% .

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