คัดลอกไฟล์จำนวนมากโดยไม่สนใจข้อผิดพลาด


14

ฉันพยายามคัดลอกไฟล์จากฮาร์ดไดรฟ์ที่เสียหาย ไม่ใช่ว่าทุกคนจะทำสำเนา - บางคนมีข้อผิดพลาด CRC และจะหยุดทำงาน ฉันต้องการข้ามไฟล์เหล่านั้นและดำเนินการต่อกับส่วนที่เหลือของการคัดลอก - แต่กระบวนการคัดลอกจะหยุดจนกว่าฉันจะคลิกหนึ่งในตัวเลือกในหน้าต่างข้อผิดพลาด มีวิธีที่ฉันจะคัดลอกทุกอย่างบอก OS เพื่อยับยั้งพรอมต์นั้นและไม่คัดลอกไฟล์ที่เสียหายหรือไม่

นี่คือบน Windows 7

คำตอบ:


15

วิธีที่เร็วที่สุดน่าจะเป็นการใช้ xcopy ผ่านอินสแตนซ์พรอมต์คำสั่งในบริบทที่คล้ายกับ:

xcopy $SOURCE $DESTINATION /C /E /Q 

การตั้งค่าสถานะ / C บังคับให้ xcopy ละเว้นปัญหาใด ๆ ด้วยการคัดลอก การตั้งค่าสถานะ / E สั่ง xcopy เพื่อคัดลอกโฟลเดอร์ (แม้แต่ที่ว่างเปล่า) และการตั้งค่าสถานะ / Q ทำให้การทำงานแบบเงียบ (ไม่เช่นนั้นคุณจะได้รับรายการสำหรับการคัดลอกแต่ละรายการ)

ตัวอย่างจะเป็น:

xcopy d:\*.* c:\recovery /C /E /Q

ทำไมไม่cp??
Vineet Menon

2
@VineetMenon สมมติว่าคุณหมายถึงคำสั่ง copy นั่นเป็นเพราะมันไม่มีลักษณะ "ทำต่อไปแม้จะมีข้อผิดพลาด" ที่ผู้ถามถาม ถ้าคุณหมายถึงคำสั่ง Linux cp นั่นเป็นเพราะคำถามนั้นเกี่ยวข้องกับ Windows 7
Rilgon Arcsinh

โอ้ ... ฉันหมายถึงcpเหมือนใน Windows ไม่รู้เรื่องความสามารถในการเพิกเฉยต่อข้อผิดพลาด !! :( ขอบคุณ
Vineet Menon

6
 robocopy.exe with /r:0 /w:0 

สำหรับการผ่านครั้งแรกจากนั้นเพิ่มเป็น /r:1


Robocopy เป็นส่วนหนึ่งของ "Windows Server 2003 Resource Kit Tools" ซึ่งคุณสามารถดาวน์โหลดได้ที่นี่: microsoft.com/download/en/details.aspx?id=17657
LawrenceC

3
ใช่ แต่มันเป็นส่วนหนึ่งของ Windows 7
fstx

3

อาจเป็นตัวอย่างข้อมูล Powershell แบบง่าย ๆ ไหม

copy-item -path E:\myfolders -destination C:\newfolder -container -force -recurse -erroraction continue -warningaction continue -confirm:$false

ในการเรียกใช้ให้เปิดคอนโซล Powershell (มีให้ใน Windows ทุกรุ่นตั้งแต่ XP) เปลี่ยนพารามิเตอร์ -path และ -directory ไปยังโฟลเดอร์เริ่มต้นและปลายทางของคุณคัดลอกคำสั่งไปที่หน้าต่าง PS และกด Enter หากคุณไม่สามารถคัดลอกได้ให้เปิดใช้งานโหมดแก้ไขอย่างรวดเร็วในคุณสมบัติคอนโซล - แผนที่นี้จะวางตัวเลือกภายใต้ปุ่มเมาส์ขวาใน Win7

อาจต้องใช้เส้นทางปิดในเครื่องหมายคำพูด '' หากมีเครื่องหมายพิเศษในชื่อเช่นช่องว่าง

การทำงานใน Powershell นี้ควรคัดลอกไฟล์และไดเรกทอรีย่อยทั้งหมดไปยังไดเรกทอรีที่ระบุ จะคัดลอกต่อไปแม้จะมีข้อผิดพลาดกับไฟล์ที่ระบุ สำหรับทุกไฟล์ที่เสียหายที่คำสั่งไม่สามารถคัดลอกได้คุณจะได้รับเอาต์พุตสีแดงจำนวนมากในคอนโซล หากคุณไม่ต้องการเห็นสิ่งเหล่านี้ให้เปลี่ยน erroraction เป็นแบบเงียบ ๆ


2

ในอดีตผมเคยใช้TeraCopy ตัวเลือกอื่นจะเป็นการคัดลอกระดับบล็อก - ตัวอย่างเช่นการใช้ dd หรือยูทิลิตี้การโคลนดิสก์ โดยส่วนตัวแล้วฉันจะบูทจากแผ่นซีดีสดของ Linux และใช้ dd_rescue / ddrescue ถ้าข้อมูลมีความสำคัญ


2

ตัวเลือก xcopy จะล้มเหลวพร้อมกับข้อผิดพลาด "พื้นที่ไม่เพียงพอ" ดูลิงค์นี้เช่น:

http://en.wikipedia.org/wiki/XCOPY#Limitation

ฉันลอง xcopy ก่อนตามที่ผู้ใช้แนะนำ แต่จากนั้นฉันใช้ robocopy ซึ่งรวมอยู่ใน Windows 7 และอันนี้สำเร็จ:

ปลายทางต้นทาง robocopy / E

กระบวนการ / E คือการเรียกซ้ำด้วยไดเรกทอรีว่าง

http://en.wikipedia.org/wiki/Robocopy#Common_usage_scenarios


1

ฉันเจอ "เครื่องถ่ายเอกสารที่ไม่มีใครหยุดของ Roadkil" มันมีส่วนต่อประสานกราฟิกและถูกออกแบบมาเป็นพิเศษสำหรับกรณีเหล่านั้น

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