Làm thế nào để sao chép một cấu trúc thư mục mà không cần sao chép các tập tin?


47

Tôi có một thư mục chứa rất nhiều thư mục con và tập tin trong đó. Có cách nào để sao chép cấu trúc thư mục và thư mục con mà không sao chép các tệp mà chúng chứa, sử dụng cmd hoặc powershell không?

Câu trả lời:


45

Nếu bạn muốn sao chép các thư mục trống là tốt.

xcopy C: \ Thư mục D: \ Thư mục / t / e


1
đúng, /enên được sử dụng, quá.

1
XCOPY Build in Powershell theo mặc định và hoạt động hoàn hảo.
BenCes

29

Vâng XCOPY

XCopy source {destination}  /t

thí dụ

xcopy C:\Folders D:\Folders /t

thêm về xcopy có thể được tìm thấy ở đây http://ss64.com/nt/xcopy.html


5
Bạn cũng nên thêm /evào để sao chép các thư mục trống

18

Mặc dù XCOPY vẫn hoạt động, Windows Vista và sau đó bao gồm ROBOCOPY có nhiều tính năng hơn. Cú pháp chung để sao chép cây thư mục (bao gồm các thư mục trống) mà không có tệp là:

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


3

Phương pháp PowerShell không yêu cầu sao chép từng tệp và sau đó xóa chúng:

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

Hoặc ngắn gọn hơn:

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

Thủ thuật thú vị duy nhất ở đây là lọc trên thuộc PSIsContainertính, điều này đúng với các thư mục nhưng không phải là tệp.


Đây là siêu nhanh là tốt!
Regmi

1

Nhìn vào ứng dụng 47 Folders, công cụ Windows tiện dụng, miễn phí, thực hiện chính xác những gì bạn cần thông qua GUI đẹp. nhập mô tả hình ảnh ở đây

CẢNH BÁO: Liên kết cũ ( http://47 Foldersapp.com/ ) ngay bây giờ (tháng 11 năm 2017) dẫn đến quảng cáo cho quần áo. Bản sao lưu trữ Internet tốt cuối cùng là ở đây . Phần mềm có thể vẫn có sẵn từ các trang tải xuống phần mềm miễn phí như trang này .


0

Có lẽ có một giải pháp tốt hơn, nhưng tôi thấy những điều sau:

  • Sao chép mọi thứ, sau đó làm trống các thư mục với một tập lệnh.

  • Tạo một kịch bản sẽ sao chép mọi thứ nếu nó không có phần mở rộng. Trừ khi bạn có các tệp không có phần mở rộng trong các thư mục, nếu không, nó sẽ hoạt động, bởi vì, tốt. Các thư mục không có phần mở rộng. Một cái gì đó sẽ trông như thế này trong mã giả:

open_directory ($ path);
while ($ file = get_directory_content) {
if (trống (get_file_extension ($ file))) {
copy_the_file ($ file, $ Destination);
}
}
close_directory;


Thật không may, chúng tôi có các tệp không có phần mở rộng. Từ .placeholder cho mã repos, đến một số tệp dữ liệu cụ thể.
Rook

Oh. Tốt. Có lẽ có một điều nếu (đó là một thư mục), sau đó. Nhưng uhm. Điều xcopy ở trên có vẻ như đó là điều phù hợp với bạn sau đó. Trừ khi không, trong trường hợp đó bạn có thể chạy tập lệnh thành 1. sao chép tất cả các thư mục và 2. làm trống tất cả các thư mục. Hoặc một cái gì đó. Nhưng đây là ... Dài. xD
Ariane

0

Sử dụng PowerShell để làm điều đó bằng cách sử dụng. Tạo bản sao của thư mục và sau đó Remove-Item -Path "C:\test\*.*" -recurse



-1

theo như tôi biết có phần mềm của bên thứ ba có thể cung cấp chức năng này nếu bạn muốn thực hiện với dấu nhắc lệnh thì sao chép lệnh ra khỏi đó. gõ trợ giúp sao chép trong cmd cung cấp chi tiết về cách bạn sao chép tệp qua cmd.
Sau khi sao chép vào thư mục thông qua cmd và chạy lệnh

del *. *
mà xóa các tập tin vì các thư mục không có. tính cách


3
Xóa các tập tin đều đúng, nhưng ai nói tên thư mục cũng không thể chứa dấu chấm / dấu chấm?
Karan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.