Відповіді:
Якщо ви також хочете скопіювати порожні папки.
xcopy C: \ Folders D: \ Folders / t / e
Так. XCOPY
XCopy source {destination} /t
приклад
xcopy C:\Folders D:\Folders /t
Більше про xcopy можна прочитати тут http://ss64.com/nt/xcopy.html
Метод 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
властивістю, що стосується каталогів, але не файлів.
Подивіться додаток 47folders, безкоштовний, зручний інструмент Windows, робить саме те, що вам потрібно завдяки приємному графічному інтерфейсу.
УВАГА: Колишнє посилання ( http://47foldersapp.com/ ) зараз (листопад 2017 р.) Призводить до реклами одягу. Остання хороша копія Інтернет-архіву знаходиться тут . Програмне забезпечення все ще може бути доступне на безкоштовних веб-сайтах, таких як цей .
Мабуть, краще рішення, але я побачив би це:
Скопіюйте все, а потім спустіть папки зі скриптом.
Створіть сценарій, який буде копіювати все, якщо у нього немає розширення. Якщо у вас немає файлів без розширення у папках, чого ви не повинні, він повинен працювати, бо, добре. Папки не мають розширень. Щось таке, що виглядатиме так у псевдокоді:
open_directory ($ шлях);
while ($ file = get_directory_content) {
if (порожній (get_file_extension ($ файл))) {
copy_the_file ($ файл, $ призначення);
}
}
close_directory;
Для цього використовуйте PowerShell. Зробіть копію папки, а потім
Remove-Item -Path "C:\test\*.*" -recurse
Я просто використовував безкоштовний Miroirs, який дуже просто копіював лише папки, а не вміст (хоча це варіант).
наскільки я знаю, є стороннє програмне забезпечення, яке може забезпечити цю функціональність, якщо ви хочете робити з командного рядка, тоді команда копіювання є там. введіть
довідкову копію в cmd, яка містить детальну інформацію про те, як копіювати файли через cmd.
після копіювання перейдіть до папки через cmd та запустіть команду
дель *. *який видаляє файли, оскільки папки не мають. характер
/e
слід використовувати.