คัดลอกเนื้อหาทั้งหมดของโฟลเดอร์ไปยังโฟลเดอร์อื่นโดยใช้ไฟล์แบตช์?


130

ฉันมีโฟลเดอร์ใน C:\Folder1

ฉันต้องการคัดลอกเนื้อหาทั้งหมดFolder1ไปยังตำแหน่งอื่นD:\Folder2

ฉันจะทำสิ่งนี้โดยใช้ไฟล์แบตช์ได้อย่างไร

คำตอบ:


163

xcopy.exeคือทางออกที่นี่ มีอยู่ใน Windows

xcopy /s c:\Folder1 d:\Folder2

คุณสามารถค้นหาตัวเลือกเพิ่มเติมได้ที่http://www.computerhope.com/xcopyhlp.htm


3
สวัสดี Hussain ฉันได้ลองใช้คำสั่ง xcopy / sc: \ Folder1 d: \ Folder2 ในไฟล์แบตช์แล้ว แต่มันไม่ได้ผลสำหรับฉัน คุณช่วยแนะนำฉันเพิ่มเติมได้ไหม
SCM

สวัสดีคุณอาจไม่มี xcopy นั้นในเครื่องของคุณ .. อย่างไรก็ตามคุณสามารถดาวน์โหลด batch file ได้จากที่นี่brothersoft.com/xcopy-177904.html
eHussain

4
หากคุณต้องการคัดลอกไดเร็กทอรีย่อยว่างคุณควรใช้แฟล็ก / s / e
Ameba Spugnosa

ไม่รวม / e โดยอัตโนมัติหรือไม่
mghicks

14
xcopyเลิกใช้งานแล้วและเกิดข้อผิดพลาด 'หน่วยความจำไม่เพียงพอ' เมื่อชื่อไฟล์ยาวเกิน 254 อักขระ ใช้robocopyแทน: robocopy C:\Folder1 D:\Folder2 /COPYALL /E en.wikipedia.org/wiki/Robocopy
Marco Demaio

39

หากคุณมี robocopy

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

มิฉะนั้น,

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

1
หากคัดลอกเนื้อหาของ Folder1 คุณจะทำอย่างไรถ้าคุณต้องการคัดลอกโฟลเดอร์เอง
Kyle Delaney

2
@KyleDelaney ใส่ชื่อโฟลเดอร์ต้นทางในปลายทางเช่น "xcopy / e / v C: \ Folder1 D: \ Folder2 \ Folder1 \"
mghicks

1
โปรดทราบว่าRoboCopy ใช้ \ เป็นอักขระหลีก (ไม่ใช้ CMD)หากคุณพยายามผ่านเส้นทางที่ยกมาด้วยช่องว่างและเครื่องหมายทับเช่น"C:\My Folder\"คุณอาจได้รับความประหลาดใจที่น่ารังเกียจ ฉันแนะนำให้อ่านหน้า SS64 นั้นอย่างระมัดระวัง สำหรับการเดินทางที่เต็มลง "สิ่งที่เป็นตัวหนีใน CMD" หลุมกระต่ายดูคำคมหนีคู่ในสคริปต์ชุด
jrh

21

หากคุณต้องการลบข้อความที่บอกว่าปลายทางเป็นไฟล์หรือโฟลเดอร์คุณเพียงแค่เพิ่มเครื่องหมายทับ:

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


16

ฉันเห็นคำตอบมากมายที่แนะนำให้ใช้ xcopy แต่สิ่งนี้ไม่จำเป็น ตามที่คำถามระบุไว้อย่างชัดเจนว่าผู้เขียนต้องการให้เนื้อหาในโฟลเดอร์ไม่ใช่โฟลเดอร์ที่จะคัดลอกในกรณีนี้เราสามารถ -:

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

นั่นคือทั้งหมดที่ xcopyสามารถใช้ได้หากมีไดเร็กทอรีย่อยอยู่ในC:\Folder1


1
สิ่งนี้ใช้ไม่ได้ถ้าโฟลเดอร์ที่คุณกำลังคัดลอกยังไม่มีอยู่ (ฉันเชื่อว่า) ดังนั้นคุณอาจต้องการเพิ่มmd D:\Folder2
Mark Deven

2
copyคำสั่งของฉัน(พรอมต์คำสั่ง Windows 10) บอกฉันว่าไวยากรณ์ไม่ถูกต้อง ต่อไปนี้จะเป็นไวยากรณ์ที่ถูกต้อง:copy "C:\Folder1\*.*" "D:\Folder2"
j00hi

4

RoboCopy ใช้งานไม่ได้สำหรับฉันและมีวิธีแก้ปัญหาที่ดีที่นี่ แต่ไม่มีใครอธิบายสวิตช์ XCopy และสิ่งที่พวกเขาทำ นอกจากนี้คุณต้องมีเครื่องหมายคำพูดในกรณีที่เส้นทางของคุณมีช่องว่าง

xcopy / i / e "C: \ temp \ โฟลเดอร์ 1" "C: \ temp \ โฟลเดอร์ 2"

นี่คือเอกสารจาก Microsoft:

เอกสาร 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

บนพีซีของฉัน xcopy และ robocopy ต้องการเส้นทางไปยังพวกเขาเช่น C: \ Windows \ System32 \ xcopy.exe

นั่นเป็นเหตุผลที่ฉันใช้เพียงแค่ "copy": copy / y .... \ Folder1 \ File.txt .... \ Folder2 \



-1

FYI ... หากคุณใช้ TortoiseSVN และคุณต้องการสร้างไฟล์แบตช์อย่างง่ายเพื่อ xcopy (หรือไดเร็กทอรีมิเรอร์) ที่เก็บทั้งหมดลงในตำแหน่ง "ปลอดภัย" เป็นระยะนี่คือรหัสเฉพาะที่คุณอาจต้องการใช้ มันคัดลอกไปยังไดเร็กทอรี / ไฟล์ที่ซ่อนอยู่รักษาคุณสมบัติแบบอ่านอย่างเดียวและไดเร็กทอรีย่อยทั้งหมดและที่ดีที่สุดคือไม่แจ้งให้ป้อนข้อมูล เพียงตรวจสอบให้แน่ใจว่าคุณกำหนด folder1 (repo ที่ปลอดภัย) และ folder2 (repo ที่ใช้งานได้) อย่างถูกต้อง

@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%

และนั่นก็คือคน!

เพิ่มงานตามกำหนดเวลาของคุณและไม่ต้องมองย้อนกลับไป


-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
คำอธิบายเกี่ยวกับรหัสของคุณไม่เพียง แต่จะเป็นประโยชน์ต่อผู้ถามคำถามนี้เท่านั้น แต่ยังรวมถึงผู้คนในอนาคตที่พบปัญหานี้เพื่อค้นหาวิธีแก้ปัญหาเดียวกัน
Josh Burgess

3
คุณมีแฟล็กหลายรายการที่ขัดแย้งกับแฟล็กอื่นโดยตรง /Sคัดลอกไดเร็กทอรีและไดเร็กทอรีย่อยยกเว้นไดเร็กทอรีว่างในขณะที่/Eคัดลอกไดเร็กทอรีและไดเร็กทอรีย่อยรวมทั้งไดเร็กทอรีว่าง /Qไม่แสดงชื่อไฟล์ขณะคัดลอกในขณะที่/Fแสดงชื่อไฟล์ต้นทางและปลายทางแบบเต็มขณะคัดลอก
SomethingDark

-2

ฉันได้เขียนไฟล์. bat เพื่อคัดลอกและวางไฟล์ลงในโฟลเดอร์ชั่วคราวและทำให้ไฟล์ zip และถ่ายโอนไปยังจุดเชื่อมต่อ smb หวังว่านี่จะช่วยได้

    @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%"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.