Як скопіювати структуру каталогу без копіювання файлів?


46

У мене папка з великою кількістю папок і файлів у них. Чи є спосіб скопіювати структуру каталогів папок і папок без копіювання файлів, які вони містять, використовуючи cmd або повноцінну оболонку?

Відповіді:


43

Якщо ви також хочете скопіювати порожні папки.

xcopy C: \ Folders D: \ Folders / t / e


1
правильно, теж /eслід використовувати.

1
XCOPY Збірка в Powershell за замовчуванням та працює чудово.
BenCes

28

Так. XCOPY

XCopy source {destination}  /t

приклад

xcopy C:\Folders D:\Folders /t

Більше про xcopy можна прочитати тут http://ss64.com/nt/xcopy.html


5
Ви повинні додати /eдо копіювання також порожні папки

18

Хоча XCOPY все ще працює, Windows Vista і пізніші версії включають ROBOCOPY, який має більше функцій. Загальний синтаксис для копіювання дерева папок (включаючи порожні папки) без файлів:

robocopy "A:\Source folder" "B:\Destination folder" /e /xf *


3

Метод PowerShell, який не вимагає копіювання кожного файлу та видалення їх:

Copy-Item -LiteralPath '.\source' -Destination 'C:\path\to\copy' -Recurse -Filter {PSIsContainer -eq $true}

Або більш лаконічно:

copy .\source C:\path\to\copy -r -fi PSIsContainer

Єдиний цікавий трюк тут - фільтрація за PSIsContainerвластивістю, що стосується каталогів, але не файлів.


Це теж швидко!
Regmi

1

Подивіться додаток 47folders, безкоштовний, зручний інструмент Windows, робить саме те, що вам потрібно завдяки приємному графічному інтерфейсу. введіть тут опис зображення

УВАГА: Колишнє посилання ( http://47foldersapp.com/ ) зараз (листопад 2017 р.) Призводить до реклами одягу. Остання хороша копія Інтернет-архіву знаходиться тут . Програмне забезпечення все ще може бути доступне на безкоштовних веб-сайтах, таких як цей .


0

Мабуть, краще рішення, але я побачив би це:

  • Скопіюйте все, а потім спустіть папки зі скриптом.

  • Створіть сценарій, який буде копіювати все, якщо у нього немає розширення. Якщо у вас немає файлів без розширення у папках, чого ви не повинні, він повинен працювати, бо, добре. Папки не мають розширень. Щось таке, що виглядатиме так у псевдокоді:

open_directory ($ шлях);
while ($ file = get_directory_content) {
if (порожній (get_file_extension ($ файл))) {
copy_the_file ($ файл, $ призначення);
}
}
close_directory;


На жаль, у нас є файли без розширень. Від власників .place для повторної роботи коду до певних файлів даних.
Грак

Ой. Ну. Можливо, є річ if (це папка). Але ум. Річ xcopy здається, що це тоді правильна річ для вас. Якщо це не так, у такому випадку ви можете запустити скрипт для 1. копіювання всіх папок та 2. очищення всіх папок. Або щось. Але це ... Довго. xD
Аріана



-1

наскільки я знаю, є стороннє програмне забезпечення, яке може забезпечити цю функціональність, якщо ви хочете робити з командного рядка, тоді команда копіювання є там. введіть довідкову копію в cmd, яка містить детальну інформацію про те, як копіювати файли через cmd.
після копіювання перейдіть до папки через cmd та запустіть команду

дель *. *
який видаляє файли, оскільки папки не мають. характер


3
Видаляє файли все в порядку, але хто каже, що імена папок також не можуть містити крапки / періоди?
Каран
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.