Lệnh robocopy trong cmd là một công cụ sao chép tệp và thư mục mạnh mẽ được tích hợp sẵn trên Windows, vượt xa giới hạn của lệnh copy hay xcopy thông thường. Ra mắt lần đầu trong Windows NT 4.0 Resource Kit, robocopy (viết tắt của Robust File Copy) đã trở thành lệnh không thể thiếu đối với quản trị viên hệ thống, chuyên viên IT và người dùng cao cấp. Bài viết này sẽ phân tích chuyên sâu cú pháp, các tham số chính, cách sử dụng thực tế và những mẹo tối ưu giúp bạn khai thác triệt để sức mạnh của robocopy.
Lệnh robocopy trong cmd là gì? Bản chất và nguyên lý hoạt động

Robocopy là một tiện ích dòng lệnh (command-line utility) được thiết kế để sao chép đồng bộ dữ liệu giữa hai vị trí, hỗ trợ cả đường dẫn cục bộ lẫn mạng. Không giống như lệnh copy thông thường chỉ sao chép đơn thuần, robocopy có khả năng khôi phục khi gặp lỗi mạng, sao chép theo chế độ đa luồng, duy trì thuộc tính bảo mật NTFS và thực hiện đồng bộ hoàn chỉnh.
Nguyên lý cốt lõi của robocopy là so sánh thời gian chỉnh sửa tệp hoặc kích thước để quyết định sao chép hay bỏ qua. Nó có thể hoạt động ở ba chế độ chính: sao chép đơn thuần (copy), sao chép có di chuyển (move) và đồng bộ (mirror). Nhờ cơ chế kiểm tra và phục hồi linh hoạt, robocopy được xem là “cứu cánh” cho các tác vụ sao chép dữ liệu quy mô lớn.
Cú pháp cơ bản và các tham số cốt lõi của lệnh robocopy trong cmd

Cú pháp tổng quát của lệnh robocopy trong cmd như sau:
robocopy <Nguồn> <Đích> [Tệp…] [Tùy chọn]
Trong đó: Nguồn là thư mục gốc, Đích là thư mục đích, Tệp là danh sách file cụ thể (mặc định là .) và Tùy chọn là các cờ điều khiển hành vi.
| Tham số | Chức năng | Ví dụ sử dụng |
|---|---|---|
| /S | Sao chép thư mục con trừ thư mục rỗng | robocopy C:Data D:Backup /S |
| /E | Sao chép thư mục con kể cả thư mục rỗng | robocopy C:Data D:Backup /E |
| /MIR | Đồng bộ thư mục đích giống hệt nguồn (xóa file thừa tại đích) | robocopy C:Data D:Backup /MIR |
| /MOV | Di chuyển tệp (xóa khỏi nguồn sau khi sao chép) | robocopy C:Data D:Backup /MOV |
| /MOVE | Di chuyển tệp và thư mục (xóa toàn bộ nguồn) | robocopy C:Data D:Backup /MOVE |
| /Z | Sao chép ở chế độ khôi phục (dành cho mạng không ổn định) | robocopy C:Data D:Backup /Z |
| /ZB | Dùng chế độ khôi phục, nếu thất bại chuyển sang chế độ khởi động lại | robocopy C:Data D:Backup /ZB |
| /R:N | Số lần thử lại khi lỗi (mặc định là 1 triệu) | robocopy C:Data D:Backup /R:5 |
| /W:N | Thời gian chờ giữa các lần thử, tính bằng giây (mặc định 30) | robocopy C:Data D:Backup /W:10 |
| /MT:N | Số luồng đa luồng (mặc định 8, tối đa 128) | robocopy C:Data D:Backup /MT:16 |
| /LOG:file | Ghi nhật ký vào tệp, ghi đè nếu tệp đã tồn tại | robocopy C:Data D:Backup /LOG:log.txt |
| /LOG+:file | Ghi nhật ký nối tiếp vào tệp | robocopy C:Data D:Backup /LOG+:log.txt |
| /XD thư_mục | Loại trừ thư mục chỉ định | robocopy C:Data D:Backup /XD Temp Cache |
| /XF tệp | Loại trừ tệp chỉ định (hỗ trợ wildcard) | robocopy C:Data D:Backup /XF .tmp .log |
| /PURGE | Xóa tại đích các tệp/thư mục không còn tồn tại ở nguồn | robocopy C:Data D:Backup /PURGE |
| /SEC | Sao chép bảo mật NTFS (ACL) | robocopy C:Data D:Backup /SEC |
Phân loại tham số theo nhóm chức năng

Nhóm sao chép cơ bản
Các tham số /S, /E, /PURGE, /MIR quyết định phạm vi sao chép. Trong đó, /MIR là sự kết hợp của /E và /PURGE, thường dùng để tạo bản sao đồng bộ hoàn hảo. Cần thận trọng khi dùng /MIR vì nó xóa dữ liệu tại đích nếu dữ liệu đó không có ở nguồn.
Nhóm phục hồi và chịu lỗi
/Z, /ZB, /R, /W giúp robocopy vượt qua lỗi kết nối mạng tạm thời. Đặc biệt sao chép với /Z cho phép tiếp tục từ điểm dừng nếu quá trình bị gián đoạn, tương tự resume trong trình tải file.
Nhóm tối ưu hiệu năng
/MT (multi-thread) là một trong những ưu điểm lớn nhất của robocopy so với xcopy. Với /MT:16, tốc độ sao chép có thể tăng gấp 2-4 lần trên ổ cứng HDD và nhiều hơn trên SSD hoặc NAS. Tuy nhiên, trên hệ thống mạng yếu, số luồng quá cao có thể gây nghẽn.
Nhóm lọc và loại trừ
Tham số /XD, /XF, /MAXAGE, /MINAGE, /MAXSIZE, /MINSIZE cho phép kiểm soát chính xác tệp nào được sao chép, giúp tiết kiệm thời gian và băng thông khi làm việc với thư mục lớn.
Nhóm bảo mật và thuộc tính
Robocopy có thể sao chép ACL (/SEC), audit (/SECFIX), timestamp (/DCOPY:T), owner (/COPYALL). Điều này cực kỳ quan trọng khi di chuyển dữ liệu giữa các máy chủ có yêu cầu bảo mật cao.
So sánh lệnh robocopy với xcopy và copy thông thường
| Tính năng | copy | xcopy | robocopy |
|---|---|---|---|
| Sao chép nhiều luồng | Không | Không | Có (/MT) |
| Khôi phục khi mất kết nối | Không | Không | |
| Đồng bộ xóa file thừa | Không | Không | Có (/MIR, /PURGE) |
| Sao chép thuộc tính NTFS | Một phần | Có (/O, /X) | Đầy đủ (/SEC, /COPYALL) |
| Kiểm tra CRC tùy chọn | Không | Không | Có (không mặc định) |
| Giới hạn đường dẫn | 255 ký tự | 255 ký tự | 32.767 ký tự |
| Log chi tiết | Không | Không | Có (/LOG, /NP, /NJH, /NJS) |
| Lọc thời gian, kích thước | Không | Hạn chế | Linh hoạt (MAXAGE, MINSIZE…) |
| Di chuyển | Không | Không | Có (/MOV, /MOVE) |
Rõ ràng robocopy là lựa chọn vượt trội cho các tác vụ phức tạp. Xcopy vẫn hữu ích cho sao chép đơn giản nhanh, nhưng với các yêu cầu về độ tin cậy và hiệu suất, robocopy là công cụ duy nhất đáp ứng.
Hướng dẫn sử dụng lệnh robocopy trong cmd thực tế

Sao lưu dữ liệu hàng ngày với tính năng incremental
Lệnh sau sẽ sao chép tất cả tệp có thay đổi trong 7 ngày qua từ thư mục Dữ liệu sang ổ cứng gắn ngoài, chỉ sao chép tệp mới hoặc đã sửa, bỏ qua tệp trùng lặp:
robocopy D:DuLieu E:Backup /MIR /MAXAGE:7 /R:5 /W:10 /LOG+:C:Logsbackup.log /NP
Kết hợp với Task Scheduler,
Robocopy có sẵn từ Windows Vista trở đi và Windows Server 2008 trở lên. Trên Windows XP/2003, cần cài đặt từ Windows Resource Kit.
Làm thế nào để hủy bỏ quá trình robocopy đang chạy?
Nhấn Ctrl + C trong cửa sổ cmd. Robocopy sẽ dừng sau khi hoàn thành tệp hiện tại.
Robocopy có thể sao chép file lớn hơn 4GB không?
Có, robocopy không giới hạn kích thước tệp. Nó hỗ trợ cả định dạng FAT32, NTFS, ReFS.
Sự khác biệt giữa /PURGE và /MIR là gì?
/PURGE chỉ xóa file thừa ở đích, nhưng không xóa thư mục thừa. /MIR kết hợp /E và /PURGE, xóa cả thư mục và file thừa, tạo ra bản sao chính xác.
Tôi có thể sao chép qua FTP hoặc SFTP bằng robocopy không?
Không, robocopy chỉ hoạt động với đường dẫn cục bộ hoặc UNC (SMB/CIFS). Để sao chép qua FTP, bạn cần công cụ khác như lftp, WinSCP script.
Làm sao để chỉ sao chép file đã thay đổi trong 24h qua?
Sử dụng tham số /MAXAGE:1 (1 ngày) hoặc /MINAGE:0. Kết hợp với /MIR để tạo incremental backup.
Kết luận
Lệnh robocopy trong cmd là một trong những công cụ sao chép dữ liệu mạnh mẽ và linh hoạt nhất mà Windows cung cấp sẵn. Với khả năng đa luồng, cơ chế phục hồi lỗi, đồng bộ thông minh và bảo toàn bảo mật, nó đáp ứng hầu hết nhu cầu từ sao lưu cá nhân đến quản lý máy chủ doanh nghiệp. Để khai thác tối đa, bạn cần nắm vững các tham số chính, luôn thử nghiệm trước khi thực thi và kết hợp với các công cụ khác như Task Scheduler hay Volume Shadow Copy. Thực hành thường xuyên sẽ giúp bạn làm chủ robocopy và biến nó thành trợ thủ đắc lực trong quản lý dữ liệu hàng ngày.







