Lệnh dòng lệnh windows để sao chép tập tin là gì?


34

Lệnh nhắc lệnh windows để sao chép tập tin là gì?

Tôi cần di chuyển tệp từ vị trí A sang vị trí B. Ngoài ra, nếu thư mục cho vị trí B không tồn tại, tôi muốn tạo nó.

Tôi cần đây là một dòng lệnh để tôi có thể tự động hóa nó.

Phiên bản của Windows là XP.


1
robocopyhoạt động rất tốt
Nixphoe

Câu trả lời:


44

Lệnh xcopylà những gì bạn đang tìm kiếm. Thí dụ:

xcopy source destination /E /C /H /R /K /O /Y

Lệnh trên sẽ sao chép nguồn vào đích, tệp và thư mục (bao gồm cả tệp trống), sẽ không dừng do lỗi, sẽ sao chép các tệp bị ẩn và hệ thống, sẽ ghi đè lên các tệp chỉ đọc, sẽ lưu giữ các thuộc tính và thông tin sở hữu / ACL và sẽ triệt tiêu nhắc nhở ghi đè các tập tin đích hiện có.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Để biết thêm thông tin loại xcopy /?và dòng lệnh của bạn.


2
Các phiên bản tương lai của windows bao gồm RoboCopy. Từ XCOPY của Vista: "LƯU Ý: Xcopy hiện không được chấp nhận, vui lòng sử dụng Robocopy."
George Tsiokos

1
Thật thú vị, hai năm sau, sau bình luận của bạn, George, xcopy vẫn 'thống trị thế giới' trên Windows 7.

Lưu ý rằng các môi trường Windows XP nhúng (POSReady 2009, v.v.) không xuất xưởng với xcopy.
Epoc

Tôi đã đề xuất một chỉnh sửa để liệt kê tất cả các tùy chọn này ...! Nếu bạn không tự động hóa nó /E /Hvà có thể /K /Ogiúp bạn đi một chặng đường dài với một vài lời nhắc hữu ích
KCD

Đừng quên /J, điều này ngăn một lỗi với XCopy khi sao chép các tệp lớn. Tôi không chắc tại sao họ không biến nó thành mặc định ...
BlueRaja

8

Sử dụng md để tạo thư mục (không sao nếu nó đã tồn tại)

Sử dụng sao chép hoặc di chuyển cho các tệp và xcopy cho các thư mục


Bạn có thể cho tôi một ví dụ về cú pháp?
David Basarab

3
sao chép fred.txt copy_of_fred.txt
Adam Gibbins

1
sao chép /? sẽ cung cấp cho bạn văn bản trợ giúp, giống như trang người dùng DOS.
Scottie T

2

Trong một tệp bó:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not existskiểm tra tham số để xem nó có tồn tại không, nhưng nó chỉ hoạt động trên các tệp. Để kiểm tra sự tồn tại của một thư mục , bạn cần tìm một 'tệp giả' có tên là "nul" - kiểm tra sự tồn tại của tệp này sẽ luôn trả về đúng nếu thư mục tồn tại.

Dòng sao chép sao chép tệp được gọi filetrong thư locationAmục locationBvà đặt tên tệp giống nhau. Nếu bạn muốn đổi tên tệp cùng một lúc, bạn cũng có thể làm điều đó:

copy locationA\file locationB\newfilename

2

Nếu bạn muốn khả năng đồng bộ hóa bản sao và các tính năng nâng cao khác (bỏ qua các thư mục nhất định, chỉ bao gồm các ký tự đại diện nhất định) thì hãy xem robocopy. Bao gồm trong Vista và hơn thế nữa, tùy chọn (từ các công cụ bộ tài nguyên) trong các phiên bản trước.


Đối với bất cứ điều gì quan trọng, tôi cũng sẽ đi với robocopy. Tôi dường như nhớ một sự khác biệt hiệu năng rất lớn so với xcopy khi đồng bộ một số lượng lớn các tệp.
Kara Marfia

1

Sử dụng ROBOCOPY nếu bạn đang tạo tập lệnh sao lưu. xcopy đã không được chấp nhận và có thể sẽ bị loại bỏ sử dụng trong tương lai gần. robocopy có thể làm mọi thứ xcopy có thể. Nó cũng linh hoạt và đáng tin cậy hơn. Tạo các kịch bản với bản sao sẽ chứng minh chúng trong tương lai.


  1. Sử dụng robocopy để dễ dàng sao chép các thư mục. Lệnh robocopy thay thế lệnh xcopy. Nó có thể nhanh chóng sao chép toàn bộ thư mục mà không phải lo lắng về việc xác định nội dung. Ví dụ: để sao chép tất cả nội dung của thư mục C: \ tools vào thư mục mới D: \ backup \ tools, hãy nhập như sau:

    robocopy C:\tools D:\backup\tools /e
    

    Công cụ sửa đổi / e báo cho robocopy bao gồm tất cả các thư mục con. Điều này bao gồm các thư mục trống. robocopy sẽ tự động sao chép các tập tin ẩn và hệ thống. Nó sẽ tạo các thư mục mới nếu chúng không tồn tại ở vị trí đích.

  2. Phản chiếu một thư mục. Phản chiếu một thư mục là tuyệt vời để tạo bản sao lưu. Tùy chọn nhân bản của robocopy sẽ sao chép tất cả các nội dung từ nguồn đến đích. Sau đó nó sẽ xóa bất cứ thứ gì ở đích không tồn tại ở nguồn. Điều này đảm bảo rằng bản sao lưu của bạn chỉ có các phiên bản mới nhất của tệp. Ví dụ: để phản chiếu C: \ Users \ My Documents sang D: \ backup \ My Documents, hãy nhập thông tin sau: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Chức năng này sẽ bảo vệ tất cả các quyền của các tập tin gốc.

  3. Cho phép khởi động lại. Bạn có thể muốn bao gồm khả năng khởi động lại quá trình trong trường hợp kết nối bị cắt giữa bản sao.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Đăng nhập quá trình sao chép. robocopy cho phép bạn tạo một tệp nhật ký. Điều này có thể giúp bạn xác định chính xác các vấn đề hoặc tạo một kho lưu trữ những gì đã được sao chép.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    Công cụ sửa đổi / log + sẽ nối thêm tệp nhật ký hiện tại thay vì ghi đè lên nó. Nếu bạn muốn ghi đè lên tệp nhật ký cũ, hãy sử dụng /log:.txt.


0

xcopy sẽ tạo cấu trúc thư mục cho bạn. Thủ thuật là sử dụng tùy chọn / I và ném dấu hoa thị vào cuối tên tệp để xcopy nghĩ rằng bạn đang sao chép nhiều tệp, nếu không, nó sẽ hỏi bạn nếu tên đích là tên tệp bạn muốn hay tên thư mục bạn muốn . Ví dụ.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

Tôi cũng sẽ xem RoboCopy, nhưng bạn cần lấy nó từ bộ tài nguyên vì nó không có trong Windows cho đến Vista.


-1

Lệnh trên tạo ra một mức thư mục bổ sung với tên của tệp nguồn. Vì vậy, ... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * Destdir \ dir1 \ dir2 \ file1.txt dẫn đến Destdir \ dir1 \ dir2 \ file1.txt \ file1.txt


1
Không có ý nghĩa để trả lời một câu hỏi cũ, mà đã có một câu trả lời được chấp nhận và không đóng góp một số giá trị gia tăng vào câu trả lời của bạn.
alphamikevictor
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.