sao chép tất cả nội dung của thư mục sang thư mục khác bằng tập tin bó?


130

Tôi có một thư mục trong C:\Folder1

Tôi muốn sao chép tất cả nội dung của Folder1một vị trí khác,D:\Folder2

Làm thế nào để tôi làm điều này bằng cách sử dụng một tập tin bó?

Câu trả lời:


163

xcopy.exelà giải pháp ở đây. Nó được tích hợp vào Windows.

xcopy /s c:\Folder1 d:\Folder2

Bạn có thể tìm thấy nhiều tùy chọn hơn tại http://www.computerhope.com/xcopyhlp.htm


3
Xin chào Hussain, tôi đã thử lệnh xcopy / sc: \ Folder1 d: \ Folder2 trong tệp bó, nhưng nó không hoạt động với tôi. bạn có thể vui lòng hướng dẫn cho tôi nhiều hơn
SCM

Xin chào, Có thể bạn không có xcopy đó trên máy của mình .. Tuy nhiên, bạn có thể tải xuống tệp bó từ đây Brothersoft.com/xcopy-177904.html
eHussain

4
Nếu bạn muốn sao chép các thư mục con trống, bạn nên sử dụng cờ / s / e.
Ameba Spugnosa

Không / e tự động bao gồm / s?
mghicks 4/11/2015

14
xcopykhông được dùng nữa và báo lỗi 'Bộ nhớ không đủ' khi tên tệp dài hơn 254 ký tự. Sử dụng robocopythay thế: robocopy C:\Folder1 D:\Folder2 /COPYALL /E vi.wikipedia.org/wiki/Robocopy
Marco Demaio

39

Nếu bạn có bản sao

robocopy C:\Folder1 D:\Folder2 /COPYALL /E

nếu không thì,

xcopy /e /v C:\Folder1 D:\Folder2

1
Nếu điều đó sao chép nội dung của Thư mục 1, bạn sẽ làm gì nếu muốn sao chép chính thư mục đó?
Kyle Delaney

2
@KyleDelaney bao gồm tên thư mục nguồn ở đích, ví dụ: "xcopy / e / v C: \ Folder1 D: \ Folder2 \ Folder1 \"
mghicks

1
Lưu ý rằng RoboCopy sử dụng \ làm ký tự thoát (CMD không) , nếu bạn cố gắng đi qua một đường dẫn được trích dẫn có dấu cách và dấu gạch chéo kết thúc như "C:\My Folder\"bạn có thể gặp bất ngờ khó chịu. Tôi khuyên bạn nên đọc trang SS64 rất cẩn thận. Để có một chuyến đi đầy đủ xuống hố thỏ "nhân vật thoát trong CMD" là gì, hãy xem Thoát khỏi dấu ngoặc kép trong Batch Script .
jrh

21

nếu bạn muốn xóa thông báo cho biết đích đến là tệp hoặc thư mục bạn chỉ cần thêm dấu gạch chéo:

xcopy /s c:\Folder1 d:\Folder2\


16

Tôi thấy rất nhiều câu trả lời gợi ý việc sử dụng xcopy. Nhưng điều này là không cần thiết. Vì câu hỏi đề cập rõ ràng rằng tác giả muốn NỘI DUNG TRONG NỀN TẢNG chứ không phải chính thư mục sẽ được sao chép trong trường hợp này, chúng ta có thể -:

copy "C:\Folder1" *.*  "D:\Folder2"

Đó là tất cả xcopy có thể được sử dụng nếu có bất kỳ thư mục con nào tồn tại trongC:\Folder1


1
Điều này không hoạt động nếu thư mục bạn đang sao chép chưa tồn tại (tôi tin) vì vậy bạn có thể muốn thêmmd D:\Folder2
Đánh dấu Deven

2
copyLệnh của tôi (dấu nhắc lệnh của Windows 10) cho tôi biết rằng cú pháp không chính xác. Sau đây sẽ là cú pháp đúng:copy "C:\Folder1\*.*" "D:\Folder2"
j00hi

4

RoboCopy không hoạt động với tôi, và có một số giải pháp tốt ở đây, nhưng không có giải thích nào về các công tắc XCopy và những gì họ làm. Ngoài ra, bạn cần báo giá trong trường hợp đường dẫn của bạn có khoảng trắng trong đó.

xcopy / i / e "C: \ temp \ thư mục 1" "C: \ temp \ thư mục 2"

Đây là tài liệu từ Microsoft:

Tài liệu XCopy MS

/s: Specifies to include subdirectories. Excludes empty subdirectories
/e: Copies all subdirectories, even if they are empty
/i: specifies the destination is a folder (Otherwise it prompts you)

2
@echo off
::Ask
echo Your Source Path:
set INPUT1=
set /P INPUT1=Type input: %=%

echo Your Destination Path:
set INPUT2=
set /P INPUT2=Type input: %=%

xcopy %INPUT1% %INPUT2% /y /s

2

Trên PC của tôi, xcopy và robocopy cũng cần đường dẫn đến chúng, tức là C: \ Windows \ System32 \ xcopy.exe

Đó là lý do tại sao tôi chỉ sử dụng "copy": copy / y .... \ Folder1 \ File.txt .... \ Folder2 \


2
@echo off
xcopy /s C:\yourfile C:\anotherfile\

Đây là cách nó được thực hiện! Đơn giản phải không?


-1

FYI ... nếu bạn sử dụng TortoiseSVN và bạn muốn tạo một tệp bó đơn giản để xcopy (hoặc nhân bản thư mục) toàn bộ kho lưu trữ vào một vị trí "an toàn" trên cơ sở định kỳ, thì đây là mã cụ thể mà bạn có thể muốn sử dụng. Nó sao chép các thư mục / tập tin ẩn, duy trì các thuộc tính chỉ đọc và tất cả các thư mục con và tốt nhất, không nhắc nhở cho đầu vào. Chỉ cần đảm bảo rằng bạn chỉ định thư mục1 (repo an toàn) và thư mục2 (repo có thể sử dụng) một cách chính xác.

@echo off
echo "Setting variables..."
set folder1="Z:\Path\To\Backup\Repo\Directory"
set folder2="\\Path\To\Usable\Repo\Directory"
echo "Removing sandbox version..."
IF EXIST %folder1% (
    rmdir %folder1% /s /q
)
echo "Copying official repository into backup location..."
xcopy /e /i /v /h /k %folder2% %folder1%

Và đó là folks!

Thêm vào các nhiệm vụ theo lịch trình của bạn và không bao giờ nhìn lại.


-2
@echo off
:: variables
echo Backing up file
set /P source=Enter source folder:
set /P destination=Enter Destination folder:
set xcopy=xcopy /S/E/V/Q/F/H/I/N
%xcopy% %source% %destination%
echo files will be copy press enter to proceed
pause

2
Một lời giải thích về mã của bạn sẽ mang lại lợi ích không chỉ cho người hỏi câu hỏi này mà cả những người trong tương lai, những người vấp phải điều này khi tìm kiếm một giải pháp cho cùng một vấn đề.
Josh Burgess

3
Bạn có một số cờ mâu thuẫn trực tiếp với các cờ khác. /Ssao chép các thư mục và thư mục con ngoại trừ các thư mục trống, trong khi các /Ethư mục và thư mục con được sao chép bao gồm cả các thư mục trống. /Qkhông hiển thị tên tệp trong khi sao chép, trong khi /Fhiển thị tên tệp nguồn và đích đầy đủ trong khi sao chép.
SomethingDark

-2

Tôi đã viết một tập tin .bat để sao chép và dán tập tin vào một thư mục tạm thời và làm cho nó trở thành zip và chuyển vào một điểm gắn kết smb, Hy vọng điều này sẽ giúp ích,

    @echo off
    if not exist "C:\Temp Backup\" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
    if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"
    if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    xcopy /s/e/q "C:\Source" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
   Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a  "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\TELIUM"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a  "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_Log_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    NET USE \\IP\IPC$ /u:IP\username password
    ROBOCOPY "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"  "\\IP\Backup Folder" /z /MIR /unilog+:"C:\backup_log_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log"
    NET USE \\172.20.10.103\IPC$ /D
    RMDIR /S /Q "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
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.