ฉันจะซ่อนบรรทัด“ ไฟล์พิเศษ” และ“ 100%” จากเอาท์พุท robocopy ได้อย่างไร


17

ฉันมีสคริปต์ robocopy เพื่อสำรองที่เก็บ Kiln ของเราที่ทำงานทุกคืนซึ่งมีลักษณะดังนี้:

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

ในผลลัพธ์มีบรรทัดมากมายที่มี "ไฟล์พิเศษ" ดังนี้:

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdt
*EXTRA File               12    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdx
*EXTRA File              128    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fnm
*EXTRA File              363    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.frq
*EXTRA File               13    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.nrm

นอกจากนี้ยังมีบรรทัดหลายร้อยบรรทัดที่ด้านล่างซึ่งไม่มีอะไรเลยนอกจาก "100%" เช่นนี้:

100%  
100%  
100%  
100%  
100%  
100%  
100%  

นอกเหนือจากการทำให้ไฟล์บันทึกมีขนาดใหญ่มาก (มีโฟลเดอร์ / ไฟล์จำนวนมากใน repos ของ Kiln) มันทำให้การสแกนผ่านบันทึกตอนนี้น่ารำคาญและดูว่าทุกอย่างทำงานได้ดีหรือไม่

  1. ฉันจะหยุด "ไฟล์พิเศษ" ที่ปรากฏในบันทึกได้อย่างไร (แก้ไข: ทั้งแถวไม่ใช่เฉพาะข้อความที่ / NC จะหยุด)
  2. ฉันจะหยุดบรรทัด "100%" โง่ ๆ เหล่านี้ที่ปรากฏในบันทึกได้อย่างไร

ฉันได้ลองชุดสวิตช์ทุกครั้งที่ฉันสามารถนึกได้ (สวิตช์ปัจจุบันอยู่ในรายการด้านบนในคำสั่ง) แต่ดูเหมือนจะไม่ซ่อนเหล่านี้!


ตามss64.com/nt/robocopy.htmlควรใช้งานได้ คุณได้ลองเปลี่ยนลำดับพารามิเตอร์เพื่อทำสะท้อนเอกสารหรือไม่? นั่นจะเป็น: / L / NP / LOG: ไฟล์ / UNILOG: ไฟล์ / LOG +: ไฟล์ / UNILOG +: ไฟล์ / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
Luiz Angelo

คำตอบ:


8

เพิ่งสังเกตเห็นว่าคุณขาด / NC ที่นั่น

/ NC: ไม่มีคลาส - อย่าล็อกคลาสไฟล์

ไฟล์คลาสคือ ... robocopy หมายถึงอะไรโดย tweaked, เหงาและพิเศษ?

ดังนั้นฉันจะลอง: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

แก้ไข 1

ความผิดฉันเอง. ไม่เห็นว่าคุณได้พูดถึงการลอง / NC แล้ว

ฉันทดสอบที่นี่ ดูเหมือนว่าตัวเลือก / MIR จะไม่สนใจตัวเลือกการบันทึก / MT เพิ่มความยุ่งเหยิงด้วยการเพิ่ม 100%

วิธีเดียวที่ฉันได้ทำงานคือ

D: \ robocopy> ปลายทางต้นทาง robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt "

* ใช้งานได้กับ / MIR แต่คุณต้องระบุ / NFLและ /NDL.* ไม่ทราบว่าเป็นที่ยอมรับสำหรับคุณ

หากคุณลอง / MT มันจะยังคงแสดงโง่ 100%

แก้ไข 2

ฉันรู้ว่าคำถามเกี่ยวกับ Robocopy แต่ฉันคิดว่าคุณควรลอง RichCopy http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

นี่คือบรรทัดคำสั่ง:

richcopy "D: \ robocopy \ source" "D: \ robocopy \ ปลายทาง" / P / QO / QP "D: \ robocopy \ report.log" / UE / US / UD / UPC / UFC / USC / UPR / UET

มันเริ่ม GUI ของ RichCopy และปิดลงเมื่อเสร็จสิ้น

และนี่คือบันทึก

28/11/2012 11: 35: 19,0, เริ่มคัดลอก,

28/11/2012 11: 35: 20,0, เส้นทางที่มา: D: \ robocopy \ source,

28/11/2012 11: 35: 20,0, เส้นทางปลายทาง: d: \ robocopy \ destination,

28/11/2012 11: 35: 20,0, จำนวนไฟล์ต้นฉบับ: 12 ไฟล์,

28/11/2012 11: 35: 20,0, จำนวนไฟล์ที่คัดลอก: 13 ไฟล์,

28/11/2012 11: 35: 20,0, จำนวนไฟล์ที่ถูกล้าง: 1,224 ไฟล์,

28/11/2012 11: 35: 20,0, เวลาที่ผ่านไป: 00:00:01,

28/11/2012 11: 35: 20,0, ประสิทธิภาพเฉลี่ย: 1,641,528 ไบต์ / วินาที

28/11/2012 11: 35: 20,0, ประสิทธิภาพเฉลี่ย: 13 ไฟล์ / วินาที,

28/11/2012 11: 35: 20,0, คัดลอกเสร็จ, D: \ robocopy \ source


1
/ NC เพียงลบคอลัมน์ "ไฟล์พิเศษ" ดังนั้นข้อความจะไม่ปรากฏ ส่วนที่เหลือของสายยังคงรวมอยู่ ฉันไม่ต้องการเส้นเลย ฉันแค่ต้องการสรุป :(
Danny Tuppeny

ความผิดฉันเอง. ไม่เห็นว่าคุณได้พูดไปแล้ว ฉันทดสอบที่นี่ ดูเหมือนว่าตัวเลือก / MIR จะไม่สนใจตัวเลือกการบันทึก นอกจากนี้ / MT ทำให้มันยุ่ง วิธีเดียวที่ฉันทำงานคือ "D: \ robocopy> แหล่งปลายทาง robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt" หากคุณลอง / MT มันจะยังคงแสดงโง่ 100%
ลูอิสแอนเจโล

1
100% เป็นส่วนที่แย่ที่สุด (มากไปกว่าไฟล์เสริม); ไม่ได้ตระหนักว่ามันคือ MT ที่ทำสิ่งนี้ดังนั้นอาจลบได้ถ้ามันไม่ให้ผลประโยชน์มหาศาล!
Danny Tuppeny

ทำเครื่องหมายว่าถูกต้องเนื่องจากเป็นวิธีแก้ปัญหาของแท้ 100% และฉันไม่คิดว่าจะมีวิธีแก้ปัญหาในการบันทึก "ไฟล์พิเศษ" ด้วย / MIR :(
Danny Tuppeny

ฉันเพิ่งแก้ไขคำตอบเดิมของฉัน เพียงโพสต์ความคิดเห็นใหม่เพื่อให้คุณไม่พลาด
ลูอิสแอนเจโล

5

/XXตัวเลือกที่ไม่รวมไฟล์พิเศษจากการเป็นหลักทรัพย์จดทะเบียน ดันทุรังตัวเลือกนี้ถูกระบุไว้ในตัวเลือกไม่ได้File Selection Loggingมันตรงกันข้ามกับ/Xตัวเลือกการบันทึกฉันเดา


1
ฉันเชื่อว่า / XX ป้องกันไม่ให้คุณเลือกไฟล์พิเศษและ / X ใช้สำหรับบันทึกเท่านั้น แต่อนุญาตให้คุณแสดงไฟล์เพิ่มเติมได้อีก! The / XX ทำกลอุบายให้ฉัน
sonjz

1
-1 เนื่องจาก / XX ออกจากไฟล์พิเศษบนปลายทางแทนที่จะลบทิ้งตามที่คาดไว้ของกระบวนการมิเรอร์
ทำเครื่องหมาย

3

ฉันคิดว่านี่อาจใช้งานได้:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

ดังนั้นเพียงไพพ์เอาต์พุตเพื่อ "ค้นหา" ด้วย / V สำหรับการยกเว้นบรรทัดที่มีข้อความที่ระบุ "* ไฟล์พิเศษ"


วิธีการแยกความคืบหน้า% (ตัวนับ 0 ถึง 100%) จากบันทึกเท่านั้น (แต่ยังคงมองเห็นได้บนคอนโซล)?
PeterCo

0

วิธีการเกี่ยวกับการใช้สวิตช์

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

ดังนั้นคุณมี

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • ต้องการ %% สองเท่าเพื่อให้มี% ในสตริงการค้นหา
  • 2> & 1เปลี่ยนเส้นทางกระแส stderr ที่ stdout เพราะบางข้อความถูกเขียนไปยัง stderr และเราต้องการที่จะจับเส้นที่ชอบ / LOG สวิทช์ไม่
  • คำสั่ง findstr 2 ตัวพร้อมสวิตช์ / v ค้นหาทุกบรรทัดที่ไม่มีสตริงการค้นหา
  • > "บันทึกชื่อไฟล์"เปลี่ยนเส้นทางผลลัพธ์สุดท้ายไปยังแฟ้มบันทึกของคุณ หากปกติแล้วคุณจะใช้/ LOG: +จากนั้นใช้>> "ชื่อไฟล์บันทึก"แทน

หมายเหตุ: หากคุณกำลังใช้สิ่งนี้ในสคริปต์ PowerShell เหมือนที่คุณเป็นคุณต้องใช้ findstr แทนที่จะค้นหาเช่นคุณสามารถใช้ไฟล์. bat หรือ. cmd หมายเหตุ / L และ / C: ไม่รองรับโดย find แต่สำหรับคำสั่ง find ไม่จำเป็นต้องใช้

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