คำสั่ง windows command line เพื่อคัดลอกไฟล์คืออะไร?


34

คำสั่งพรอมต์คำสั่ง windows คืออะไรในการคัดลอกไฟล์

ฉันต้องการย้ายไฟล์จากตำแหน่ง A ไปยังตำแหน่ง B และหากโฟลเดอร์สำหรับตำแหน่ง B ไม่มีอยู่จริงฉันต้องการสร้างมันขึ้นมา

ฉันต้องการสิ่งนี้เพื่อเป็นบรรทัดคำสั่งเพื่อให้ฉันสามารถทำให้เป็นอัตโนมัติ

รุ่นของ Windows คือ XP


1
robocopyใช้งานได้ดีเกินไป
Nixphoe

คำตอบ:


44

คำสั่งxcopyคือสิ่งที่คุณกำลังมองหา ตัวอย่าง:

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

คำสั่งดังกล่าวจะคัดลอกแหล่งที่มาไปยังปลายทางไฟล์และไดเรกทอรี (รวมถึงที่ว่างเปล่า) จะไม่หยุดเมื่อเกิดข้อผิดพลาดจะคัดลอกที่ซ่อนอยู่และไฟล์ระบบจะเขียนทับไฟล์อ่านอย่างเดียวเท่านั้นจะรักษาคุณสมบัติและข้อมูลความเป็นเจ้าของ / ACL และ แจ้งให้เขียนทับไฟล์ปลายทางที่มีอยู่

/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.

สำหรับประเภทข้อมูลเพิ่มเติมxcopy /?และบรรทัดคำสั่งของคุณ


2
รุ่นต่อไปของ windows รวมถึง RoboCopy จาก XCOPY ของ Vista: "หมายเหตุ: ขณะนี้ Xcopy เลิกใช้แล้วโปรดใช้ Robocopy"
George Tsiokos

1
น่าสนใจพอสองปีต่อมาหลังจากความคิดเห็นของคุณจอร์จ xcopy ยังคง 'ครองโลก' ใน Windows 7

โปรดทราบว่าสภาพแวดล้อม Windows XP แบบฝังตัว (POSReady 2009 และอื่น ๆ ) ไม่ได้มาพร้อมกับ xcopy
Epoc

ฉันขอแนะนำให้แก้ไขรายการทั้งหมดตัวเลือกเหล่านี้ ... ! หากคุณไม่ได้ทำมันเองโดยอัตโนมัติ/E /Hและอาจ/K /Oทำให้คุณใช้งานได้นานขึ้นด้วยพรอมต์ที่ใช้งานง่าย
KCD

อย่าลืม/Jซึ่งป้องกันข้อผิดพลาดด้วย XCopyเมื่อคัดลอกไฟล์ขนาดใหญ่ ฉันไม่แน่ใจว่าทำไมพวกเขาจะไม่ทำเช่นนั้นเป็นค่าเริ่มต้น ...
BlueRaja

8

ใช้mdเพื่อสร้างโฟลเดอร์ (ไม่เป็นไรถ้ามีอยู่แล้ว)

ใช้การคัดลอกหรือย้ายไฟล์และxcopyสำหรับโฟลเดอร์


คุณช่วยยกตัวอย่างไวยากรณ์ให้ฉันได้ไหม
David Basarab

3
คัดลอก fred.txt copy_of_fred.txt
Adam Gibbins

1
คัดลอก /? จะให้ข้อความช่วยเหลือเรียงลำดับเหมือนหน้าคนของ DOS
Scottie T

2

ในแบตช์ไฟล์:

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

if not existsตรวจสอบพารามิเตอร์เพื่อดูว่ามีอยู่หรือไม่ แต่ใช้ได้กับไฟล์เท่านั้น ในการตรวจสอบการมีอยู่ของไดเรกทอรีคุณจะต้องค้นหา 'ไฟล์หลอก' ที่เรียกว่า "nul" - การตรวจสอบว่าไฟล์นี้มีอยู่จริงจะส่งกลับค่าจริงหรือไม่หากมีไดเรกทอรีอยู่

บรรทัดการคัดลอกจะคัดลอกไฟล์ที่เรียกว่าfileในไดเรกทอรีlocationAไปยังlocationBและตั้งชื่อไฟล์ในลักษณะเดียวกัน หากคุณต้องการเปลี่ยนชื่อไฟล์ในเวลาเดียวกันคุณสามารถทำได้เช่นกัน:

copy locationA\file locationB\newfilename

2

หากคุณต้องการความสามารถในการประสานการคัดลอกและคุณลักษณะขั้นสูงอื่น ๆ (ไม่สนใจบางโฟลเดอร์เท่านั้นรวมถึงสัญลักษณ์บางอย่าง) robocopyแล้วมองไปที่ รวมอยู่ใน Vista และอื่น ๆ (เป็นชุดเครื่องมือทรัพยากร) ในรุ่นก่อนหน้า


สำหรับสิ่งที่สำคัญฉันจะไปกับ robocopy เช่นกัน ฉันดูเหมือนจะจำความแตกต่างของประสิทธิภาพการทำงานอย่างมากเมื่อเทียบกับ xcopy เมื่อทำการซิงค์ไฟล์จำนวนมาก
Kara Marfia

1

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


  1. ใช้ robocopy เพื่อคัดลอกโฟลเดอร์อย่างง่ายดาย คำสั่ง robocopy แทนที่คำสั่ง xcopy มันสามารถคัดลอกโฟลเดอร์ทั้งหมดได้อย่างรวดเร็วโดยไม่ต้องกังวลกับการกำหนดเนื้อหา ตัวอย่างเช่นหากต้องการคัดลอกเนื้อหาทั้งหมดของไดเรกทอรี C: \ tools ไปยังโฟลเดอร์ใหม่ D: \ backup \ tools ให้ป้อนข้อมูลต่อไปนี้:

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

    โมดิฟายเออร์ / e บอกให้ robocopy รวมไดเรกทอรีย่อยทั้งหมด รวมถึงโฟลเดอร์ที่ว่างเปล่า robocopy จะคัดลอกไฟล์ที่ซ่อนอยู่และระบบโดยอัตโนมัติ มันจะสร้างไดเรกทอรีใหม่หากไม่มีอยู่ที่ตำแหน่งเป้าหมาย

  2. ทำมิเรอร์ไดเร็กทอรี การทำมิเรอร์ไดเร็กทอรีนั้นยอดเยี่ยมสำหรับการสำรองข้อมูล ตัวเลือกมิเรอร์ของ robocopy จะคัดลอกเนื้อหาทั้งหมดจากต้นทางไปยังปลายทาง จากนั้นจะลบสิ่งที่ปลายทางที่ไม่มีอยู่ในแหล่งที่มา สิ่งนี้ทำให้มั่นใจได้ว่าการสำรองข้อมูลของคุณมีไฟล์เวอร์ชันล่าสุดเท่านั้น ตัวอย่างเช่นในการทำมิเรอร์ C: \ Users \ My Documents เป็น D: \ backup \ My Documents ให้ป้อนข้อมูลต่อไปนี้: [4]

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

    ฟังก์ชั่นนี้จะสงวนสิทธิ์ทั้งหมดของไฟล์ต้นฉบับ

  3. เปิดใช้งานการรีสตาร์ท คุณอาจต้องการรวมความสามารถในการรีสตาร์ทกระบวนการในกรณีที่การเชื่อมต่อถูกตัดกลางสำเนา

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. บันทึกกระบวนการคัดลอก robocopy อนุญาตให้คุณสร้างไฟล์บันทึก สิ่งนี้สามารถช่วยคุณระบุปัญหาหรือสร้างที่เก็บถาวรของสิ่งที่ถูกคัดลอก

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

    กระบวนการ / log + ปรับปรุงจะผนวกไฟล์บันทึกที่มีอยู่แทนการเขียนทับมัน หากคุณต้องการเขียนทับไฟล์บันทึกเก่าให้ใช้ /log:.txt


0

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

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

ฉันจะดู RoboCopy ด้วย แต่คุณต้องเอามันมาจากชุดทรัพยากรเพราะมันไม่ได้อยู่ใน Windows จนถึง Vista


-1

คำสั่งดังกล่าวสร้างระดับไดเรกทอรีเพิ่มเติมด้วยชื่อของไฟล์ต้นฉบับ ดังนั้น ... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * destdir \ dir1 \ dir2 \ file1.txt ให้ผลลัพธ์ใน destdir \ dir1 \ dir2 \ file1.txt \ file1.txt


1
ไม่เหมาะสมที่จะตอบคำถามเก่าเช่นนี้ซึ่งมีคำตอบที่ยอมรับแล้วและไม่ได้มีส่วนช่วยเพิ่มมูลค่าในคำตอบของคุณ
alphamikevictor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.