คำสั่ง xcopy คือคำสั่งพร้อมรับคำสั่งที่ใช้ในการคัดลอกไฟล์หรือโฟลเดอร์ตั้งแต่หนึ่งไฟล์ขึ้นไปจากที่หนึ่งไปยังอีกที่หนึ่ง
ด้วยตัวเลือกมากมายและความสามารถในการคัดลอกทั้งไดเร็กทอรี มันคล้ายกับ แต่มีประสิทธิภาพมากกว่าคำสั่งคัดลอก คำสั่ง robocopy ก็คล้ายกันแต่มีตัวเลือกมากกว่า
พร้อมใช้งานคำสั่ง Xcopy
คำสั่งนี้มีอยู่ใน Command Prompt ในระบบปฏิบัติการ Windows ทั้งหมด รวมถึง Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP, Windows 98 เป็นต้น
คุณยังสามารถเข้าถึงคำสั่งใน MS-DOS เป็นคำสั่ง DOS ได้
ไวยากรณ์คำสั่ง Xcopy
ใช้ไวยากรณ์ต่อไปนี้สำหรับคำสั่ง xcopy:
xcopy แหล่งที่มา [ปลายทาง] [ /a] [ /b] [/c ] [/d [: วันที่] [/e ] [ /f ] [/g ] [/h ] [/i] [ /j] [ /k] [ /l] [ /m] [ /n] [ /o] [ /p] [ /q] [ /r] [ /s] [ /t] [ /u] [ /v] [ /w] [ /x] [ /y] [ /-y] [ /z] [/exclude: file1 [+ file2][+ file3]…] [ /? ]
ความพร้อมใช้งานของสวิตช์คำสั่ง xcopy บางตัวและรูปแบบคำสั่งอื่นๆ อาจแตกต่างไปจากระบบปฏิบัติการกับระบบปฏิบัติการ เรียนรู้วิธีอ่านไวยากรณ์คำสั่ง หากคุณไม่แน่ใจว่าจะอ่านไวยากรณ์ด้านบนหรือในตารางด้านล่างอย่างไร
ตัวเลือกคำสั่ง Xcopy | |
---|---|
รายการ | Description |
แหล่งที่มา | นี่กำหนดไฟล์หรือโฟลเดอร์ระดับบนสุดที่คุณต้องการคัดลอก แหล่งที่มาเป็นพารามิเตอร์ที่จำเป็นเท่านั้น ใช้เครื่องหมายคำพูดรอบแหล่งที่มาหากมีการเว้นวรรค |
ปลายทาง | ตัวเลือกนี้ระบุตำแหน่งที่ควรคัดลอกไฟล์หรือโฟลเดอร์ต้นทาง หากไม่มีรายการปลายทาง ไฟล์หรือโฟลเดอร์จะถูกคัดลอกไปยังโฟลเดอร์เดียวกับที่คุณใช้คำสั่ง xcopy ใช้เครื่องหมายคำพูดรอบปลายทางหากมีช่องว่าง |
/a | การใช้ตัวเลือกนี้จะคัดลอกไฟล์เก็บถาวรที่พบในแหล่งที่มาเท่านั้น คุณไม่สามารถใช้ /a และ /m ร่วมกันได้ |
/b | ใช้ตัวเลือกนี้เพื่อคัดลอกลิงก์สัญลักษณ์แทนเป้าหมายของลิงก์ ตัวเลือกนี้มีให้ใช้งานครั้งแรกใน Windows Vista |
/c | ตัวเลือกนี้บังคับให้ xcopy ดำเนินการต่อแม้ว่าจะพบข้อผิดพลาด |
/d [ : วันที่] | ใช้คำสั่งด้วยตัวเลือก /d และวันที่เฉพาะ ในรูปแบบ MM-DD-YYYY เพื่อคัดลอกไฟล์ที่เปลี่ยนแปลงในหรือหลังวันที่นั้น คุณยังสามารถใช้ตัวเลือกนี้โดยไม่ต้องระบุวันที่เจาะจงเพื่อคัดลอกเฉพาะไฟล์ในแหล่งที่มาที่ใหม่กว่าไฟล์เดิมที่มีอยู่แล้วในปลายทาง สิ่งนี้มีประโยชน์เมื่อใช้ xcopy เพื่อสำรองข้อมูลไฟล์ตามปกติ |
/e | เมื่อใช้คนเดียวหรือกับ /s ตัวเลือกนี้จะเหมือนกับ /s แต่จะสร้างโฟลเดอร์ว่างในปลายทางด้วย ยังว่างในแหล่งที่มาตัวเลือก /e ยังสามารถใช้ร่วมกับตัวเลือก /t เพื่อรวมไดเรกทอรีว่างและไดเรกทอรีย่อยที่พบในแหล่งที่มาในโครงสร้างไดเรกทอรีที่สร้างในปลายทาง |
/f | ตัวเลือกนี้จะแสดงพาธแบบเต็มและชื่อไฟล์ของทั้งไฟล์ต้นทางและปลายทางที่กำลังคัดลอก |
/g | การใช้ xcopy พร้อมตัวเลือกนี้ทำให้คุณสามารถคัดลอกไฟล์ที่เข้ารหัสในต้นทางไปยังปลายทางที่ไม่รองรับการเข้ารหัส ตัวเลือกนี้จะไม่ทำงานเมื่อคัดลอกไฟล์จากไดรฟ์ที่เข้ารหัส EFS ไปยังไดรฟ์ที่เข้ารหัสที่ไม่ใช่ EFS |
/h | คำสั่งนี้จะไม่คัดลอกไฟล์ที่ซ่อนหรือไฟล์ระบบโดยค่าเริ่มต้น แต่จะทำเมื่อใช้ตัวเลือกนี้ |
/i | ใช้ตัวเลือก /i เพื่อบังคับให้ xcopy ถือว่าปลายทางเป็นไดเรกทอรีหากคุณไม่ได้ใช้ตัวเลือกนี้ และคุณกำลังคัดลอกจากต้นทางที่เป็นไดเร็กทอรีหรือกลุ่มของไฟล์ และคัดลอกไปยังปลายทางที่ไม่มีอยู่ คำสั่ง xcopy จะแจ้งให้คุณป้อนว่าปลายทางเป็นไฟล์หรือไดเร็กทอรี |
/j | ตัวเลือกนี้จะคัดลอกไฟล์โดยไม่มีบัฟเฟอร์ ซึ่งเป็นคุณสมบัติที่มีประโยชน์สำหรับไฟล์ขนาดใหญ่มาก ตัวเลือกนี้มีให้ใช้งานครั้งแรกใน Windows 7 |
/k | ใช้ตัวเลือกนี้เมื่อคัดลอกไฟล์แบบอ่านอย่างเดียวเพื่อคงแอตทริบิวต์ของไฟล์นั้นไว้ในปลายทาง |
/l | ใช้ตัวเลือกนี้เพื่อแสดงรายการไฟล์และโฟลเดอร์ที่จะคัดลอก… แต่จริงๆ แล้วไม่มีการคัดลอก ตัวเลือก /l มีประโยชน์หากคุณกำลังสร้างคำสั่งที่ซับซ้อนด้วยตัวเลือกต่างๆ มากมาย และคุณต้องการดูว่ามันจะทำงานอย่างไรในเชิงสมมุติฐาน |
/m | ตัวเลือกนี้เหมือนกับตัวเลือก /a แต่ xcopy จะปิดแอตทริบิวต์ archive หลังจากคัดลอกไฟล์ คุณไม่สามารถใช้ /m และ /a ร่วมกันได้ |
/n | ตัวเลือกนี้จะสร้างไฟล์และโฟลเดอร์ในปลายทางโดยใช้ชื่อไฟล์แบบสั้น ตัวเลือกนี้มีประโยชน์เฉพาะเมื่อคุณใช้คำสั่งเพื่อคัดลอกไฟล์ไปยังปลายทางที่มีอยู่ในไดรฟ์ที่ฟอร์แมตเป็นระบบไฟล์รุ่นเก่า เช่น FAT ที่ไม่รองรับชื่อไฟล์แบบยาว |
/o | รักษาความเป็นเจ้าของและข้อมูลรายการควบคุมการเข้าถึง (ACL) ในไฟล์ที่เขียนในปลายทาง. |
/p | เมื่อใช้ตัวเลือกนี้ คุณจะได้รับแจ้งก่อนการสร้างแต่ละไฟล์ในปลายทาง. |
/q | ตรงข้ามกับตัวเลือก /f สวิตช์ /q จะทำให้ xcopy เข้าสู่โหมด "เงียบ" โดยข้ามไป - การแสดงหน้าจอของแต่ละไฟล์ที่คัดลอก |
/r | ใช้ตัวเลือกนี้เพื่อเขียนทับไฟล์แบบอ่านอย่างเดียวในปลายทาง หากคุณไม่ได้ใช้ตัวเลือกนี้เมื่อต้องการเขียนทับไฟล์แบบอ่านอย่างเดียวในปลายทาง คุณจะได้รับข้อความแจ้งว่า "ปฏิเสธการเข้าถึง" และคำสั่งจะหยุดทำงาน |
/s | ใช้ตัวเลือกนี้เพื่อคัดลอกไดเร็กทอรี ไดเร็กทอรีย่อย และไฟล์ที่อยู่ในไดเร็กทอรี นอกเหนือจากไฟล์ในรูทของซอร์ส โฟลเดอร์ที่ว่างเปล่าจะไม่ถูกสร้างขึ้นใหม่ |
/t | ตัวเลือกนี้บังคับให้คำสั่ง xcopy สร้างโครงสร้างไดเร็กทอรีในปลายทางแต่ห้ามคัดลอกไฟล์ใดๆ กล่าวอีกนัยหนึ่ง โฟลเดอร์และโฟลเดอร์ย่อยที่พบในแหล่งที่มาจะถูกสร้างขึ้น แต่เราไม่มีไฟล์ โฟลเดอร์ที่ว่างเปล่าจะไม่ถูกสร้างขึ้น |
/u | ตัวเลือกนี้จะคัดลอกไฟล์ในแหล่งที่มาที่อยู่ในปลายทางแล้วเท่านั้น |
/v | ตัวเลือกนี้จะตรวจสอบแต่ละไฟล์ตามที่เขียน โดยอิงตามขนาดของไฟล์ เพื่อให้แน่ใจว่าตรงกัน การยืนยันถูกสร้างขึ้นในคำสั่งที่เริ่มต้นใน Windows XP ดังนั้นตัวเลือกนี้จึงไม่ทำอะไรเลยใน Windows รุ่นที่ใหม่กว่า และรวมไว้เฉพาะความเข้ากันได้กับไฟล์ MS-DOS ที่เก่ากว่าเท่านั้น |
/w | ใช้ตัวเลือก /w เพื่อแสดงข้อความ "กดปุ่มใดก็ได้เมื่อพร้อมที่จะคัดลอกไฟล์" คำสั่งจะเริ่มคัดลอกไฟล์ตามคำแนะนำหลังจากที่คุณยืนยันด้วยการกดปุ่ม ตัวเลือกนี้ไม่เหมือนกับตัวเลือก /p ที่ขอการตรวจสอบก่อนคัดลอกไฟล์แต่ละไฟล์ |
/x | ตัวเลือกนี้จะคัดลอกการตั้งค่าการตรวจสอบไฟล์และข้อมูล System Access Control List (SACL) คุณบอกเป็นนัยว่า /o เมื่อคุณใช้ตัวเลือก /x |
/y | ใช้ตัวเลือกนี้เพื่อหยุดคำสั่งไม่ให้แจ้งเตือนคุณเกี่ยวกับการเขียนทับไฟล์จากแหล่งที่มาที่มีอยู่แล้วในปลายทาง. |
/-y | ใช้ตัวเลือกนี้เพื่อบังคับคำสั่งให้คุณเขียนทับไฟล์ นี่อาจดูเหมือนเป็นตัวเลือกแปลก ๆ ที่มีอยู่เนื่องจากนี่เป็นพฤติกรรมเริ่มต้นของ xcopy แต่ตัวเลือก /y อาจถูกตั้งค่าไว้ล่วงหน้าในตัวแปรสภาพแวดล้อม COPYCMD บนคอมพิวเตอร์บางเครื่อง ทำให้ตัวเลือกนี้จำเป็น |
/z | ตัวเลือกนี้อนุญาตให้คำสั่ง xcopy หยุดการคัดลอกไฟล์ได้อย่างปลอดภัยเมื่อการเชื่อมต่อเครือข่ายขาดหายไป จากนั้นทำสำเนาต่อจากจุดที่ค้างไว้เมื่อการเชื่อมต่อได้รับการเชื่อมต่อใหม่ ตัวเลือกนี้ยังแสดงเปอร์เซ็นต์ที่คัดลอกสำหรับแต่ละไฟล์ระหว่างขั้นตอนการคัดลอก |
/exclude: file1 [ + file2][ + file3]… | ตัวเลือกนี้ให้คุณระบุชื่อไฟล์ตั้งแต่หนึ่งชื่อขึ้นไปที่มีรายการสตริงการค้นหาที่คุณต้องการให้คำสั่งใช้เพื่อกำหนดไฟล์และ/หรือโฟลเดอร์ที่จะข้ามเมื่อคัดลอก |
/? | ใช้สวิตช์ความช่วยเหลือด้วย xcopy เพื่อแสดงความช่วยเหลือโดยละเอียดเกี่ยวกับคำสั่ง การดำเนินการ xcopy /? เหมือนกับการใช้คำสั่ง help เพื่อดำเนินการ help xcopy. |
คำสั่ง xcopy จะเพิ่มแอตทริบิวต์ archive ให้กับไฟล์ในปลายทาง ไม่ว่าแอตทริบิวต์นั้นจะเปิดหรือปิดอยู่ในไฟล์ในซอร์ส
ตัวอย่างคำสั่ง Xcopy
ต่อไปนี้คือตัวอย่างวิธีใช้คำสั่งนี้:
คัดลอกไฟล์ไปยังโฟลเดอร์ใหม่
xcopy C:\Files E:\Files /i
ในตัวอย่างข้างต้น ไฟล์ที่อยู่ในไดเร็กทอรีต้นทางของ C:\Files จะถูกคัดลอกไปยังปลายทาง ไดเร็กทอรีใหม่ บนไดรฟ์ E ชื่อ Files
ไม่มีไดเรกทอรีย่อยหรือไฟล์ใด ๆ ที่อยู่ภายในจะถูกคัดลอกเนื่องจากไม่ได้ใช้ตัวเลือก /s
สคริปต์สำรอง Xcopy
xcopy "C:\ไฟล์สำคัญ" D:\Backup /c /d /e /h /i /k /q /r /s /x /y
ในตัวอย่างนี้ xcopy ออกแบบมาเพื่อทำหน้าที่เป็นโซลูชันสำรอง ลองใช้วิธีนี้หากคุณต้องการใช้ xcopy แทนโปรแกรมซอฟต์แวร์สำรองข้อมูลเพื่อสำรองไฟล์ของคุณ ใส่คำสั่งดังที่แสดงด้านบนในสคริปต์และกำหนดเวลาให้รันทุกคืน
ดังที่แสดงด้านบน คำสั่งนี้ใช้เพื่อคัดลอกไฟล์และโฟลเดอร์ทั้งหมด [/s] ที่ใหม่กว่าที่คัดลอกไว้แล้ว [/d] รวมถึงโฟลเดอร์ว่าง [/e] และไฟล์ที่ซ่อนอยู่ [/h] จาก แหล่งที่มาของ C:\Important Files ไปยังปลายทางของ D:\Backup ซึ่งเป็นไดเร็กทอรี เรามีไฟล์แบบอ่านอย่างเดียวที่เราต้องการให้อัปเดตในปลายทาง [/r] และเราต้องการเก็บแอตทริบิวต์นั้นไว้หลังจากถูกคัดลอก [/k]เรายังต้องการให้แน่ใจว่าเราคงความเป็นเจ้าของและการตั้งค่าการตรวจสอบไว้ในไฟล์ที่เรากำลังคัดลอก [/x] สุดท้าย เนื่องจากเราใช้ xcopy ในสคริปต์ เราจึงไม่จำเป็นต้องดูข้อมูลใด ๆ เกี่ยวกับไฟล์ในขณะที่คัดลอก [/q] เราไม่ต้องการให้เขียนทับแต่ละไฟล์ [/y] และเราไม่ต้องการให้คำสั่งหยุดทำงานหากเกิดข้อผิดพลาด [/c].
คัดลอกไฟล์และโฟลเดอร์ผ่านเครือข่าย
xcopy C:\Videos "\\SERVER\Media Backup" /f /j /s /w /z
ที่นี่ คำสั่งใช้เพื่อคัดลอกไฟล์ โฟลเดอร์ย่อย และไฟล์ทั้งหมดที่อยู่ในโฟลเดอร์ย่อย [/s] จากต้นทางของ C:\Videos ไปยังโฟลเดอร์ปลายทาง Media Backup ที่อยู่ในคอมพิวเตอร์บนเครือข่ายโดย ชื่อของเซิร์ฟเวอร์ เรากำลังคัดลอกไฟล์วิดีโอขนาดใหญ่จริงๆ ดังนั้นการบัฟเฟอร์จึงควรปิดการใช้งานเพื่อปรับปรุงกระบวนการคัดลอก [/j] และเนื่องจากเรากำลังคัดลอกผ่านเครือข่าย เราต้องการที่จะสามารถคัดลอกต่อได้หากเราสูญเสียการเชื่อมต่อเครือข่าย [/z]. ด้วยความหวาดระแวง เราต้องการได้รับแจ้งให้เริ่มกระบวนการก่อนที่จะดำเนินการใดๆ จริง ๆ [/w] และเราต้องการดูรายละเอียดทุกอย่างเกี่ยวกับไฟล์ที่กำลังถูกคัดลอกขณะกำลังคัดลอก [/f]
โครงสร้างโฟลเดอร์ซ้ำ
xcopy C:\Client032 C:\Client033 /t /e
ในตัวอย่างสุดท้ายนี้ เรามีซอร์สที่เต็มไปด้วยไฟล์และโฟลเดอร์ที่จัดระเบียบอย่างดีใน C:\Client032 สำหรับลูกค้า เราได้สร้างโฟลเดอร์ปลายทางว่างแล้ว Client033 สำหรับลูกค้าใหม่ แต่เราไม่ต้องการคัดลอกไฟล์ใด ๆ เพียงแค่โครงสร้างโฟลเดอร์ว่าง [/t] เพื่อที่เราจะได้จัดระเบียบและเตรียมพร้อม เรามีโฟลเดอร์ว่างใน C:\Client032 ที่อาจใช้กับไคลเอนต์ใหม่ ดังนั้นเราจึงต้องการให้แน่ใจว่าได้คัดลอกโฟลเดอร์เหล่านั้นด้วย [/e].
บันทึกผลลัพธ์ที่ยาวบางครั้งของคำสั่ง xcopy ไปยังไฟล์โดยใช้ตัวดำเนินการเปลี่ยนเส้นทาง เรียนรู้วิธีเปลี่ยนเส้นทางเอาต์พุตคำสั่งไปยังไฟล์หรือดูคำแนะนำเพิ่มเติมจาก Command Prompt Tricks
Xcopy & Xcopy32
ใน Windows 98 และ Windows 95 มีคำสั่ง xcopy สองเวอร์ชัน: xcopy และ xcopy32 อย่างไรก็ตาม คำสั่งหลังไม่ได้ตั้งใจให้รันโดยตรง
เมื่อคุณรัน xcopy ใน Windows 95 หรือ 98 ทั้งเวอร์ชัน 16 บิตดั้งเดิมจะถูกดำเนินการโดยอัตโนมัติ (เมื่ออยู่ในโหมด MS-DOS) หรือเวอร์ชัน 32 บิตที่ใหม่กว่าจะถูกดำเนินการโดยอัตโนมัติ (เมื่ออยู่ใน Windows)
เพื่อความชัดเจน ไม่ว่าคุณจะใช้ Windows หรือ MS-DOS เวอร์ชันใด ให้เรียกใช้คำสั่ง xcopy เสมอ ไม่ใช่ xcopy32 แม้ว่าจะพร้อมใช้งานก็ตาม เมื่อคุณรัน xcopy คุณจะใช้คำสั่งเวอร์ชันที่เหมาะสมที่สุดเสมอ
Xcopy คำสั่งที่เกี่ยวข้อง
คำสั่ง xcopy คล้ายกับคำสั่งคัดลอกในหลาย ๆ ทาง แต่มีตัวเลือกที่มากกว่า เช่น ความสามารถในการคัดลอกโฟลเดอร์ คัดลอกทุกไฟล์ในไดเรกทอรีย่อย และแยกไฟล์ออก
คำสั่งนี้เหมือนกับคำสั่ง robocopy มาก ยกเว้นว่า robocopy จะมีความยืดหยุ่นมากกว่า xcopy
คำสั่ง dir มักใช้กับ xcopy เพื่อตรวจสอบว่าโฟลเดอร์และไฟล์ใดอยู่ในไดเร็กทอรีก่อนที่จะทำคำสั่งให้สมบูรณ์