ฉันจะทำให้ robocopy เงียบในบรรทัดคำสั่งได้อย่างไรยกเว้นความคืบหน้า


105

ฉันใช้ robocopy ในการสำรองข้อมูลด้วยสคริปต์ PowerShell และมันค่อนข้างยอดเยี่ยมยกเว้นว่าฉันต้องการให้แสดงเปอร์เซ็นต์ความคืบหน้าในขณะที่คัดลอกเท่านั้นไม่ใช่ข้อมูลอื่น ๆ ทั้งหมด

ข้อมูลอื่น ๆ รวมอยู่ในหน้าต่างคำสั่งซึ่งฉันจะทำความสะอาดและเรียบง่ายเพื่อให้ง่ายต่อการดูความคืบหน้าโดยรวมของการสำรองข้อมูล

เป็นไปได้หรือไม่

ขอบคุณแอนดรูว์

คำตอบ:


192

ฉันเพิ่ม 2 พารามิเตอร์ต่อไปนี้: /np /nfl

ดังนั้นเมื่อรวมกับพารามิเตอร์ 5 ตัวจากAndyGeek'sคำตอบซึ่ง/njh /njs /ndl /nc /nsคุณจะได้รับสิ่งต่อไปนี้และมันเงียบ:

ROBOCOPY [source] [target] /NFL /NDL /NJH /NJS /nc /ns /np

/NFL : No File List - don't log file names.
/NDL : No Directory List - don't log directory names.
/NJH : No Job Header.
/NJS : No Job Summary.
/NP  : No Progress - don't display percentage copied.
/NS  : No Size - don't log file sizes.
/NC  : No Class - don't log file classes.

2
ยังคงมีข้อความ "100%" ปรากฏอยู่
Scott Chu

13
สิ่งนี้ยังคงพิมพ์บรรทัดว่างบรรทัดเดียวซึ่งสังเกตเห็นได้ชัดเจนในไฟล์แบตช์
wqw

7
/nc /nsไม่จำเป็นเมื่อ/nfl /ndlมีการระบุ
Vojtěch Dohnal

3
@wqw เพิ่ม a> NUL ที่ EOL และบรรทัดว่างคือประวัติ
สมุนไพร

2
@ScottChu สิ่งนี้จะพิมพ์ 100% เมื่อคุณใช้สวิตช์ / mt ฉันเดาว่าคุณจะต้องตัดสินใจว่าคุณต้องการมัลติเธรดหรือไม่แสดง% s
Loaf

40

ฉันทำได้โดยใช้ตัวเลือกต่อไปนี้:

/njh /njs /ndl /nc /ns

โปรดทราบว่าชื่อไฟล์ยังคงปรากฏอยู่ แต่ก็ใช้ได้สำหรับฉัน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ robocopy ไปที่http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx


3
/ nfl เพื่อระงับชื่อไฟล์
xagyg

12
จะปรากฏขึ้นหากคุณใช้งาน/mirหรือ/purgeไฟล์พิเศษยังคงบันทึกอยู่ หาวิธีปิดไม่เจอ
bbodenmiller

1
โปรดทราบว่าด้วย robocopy แถบความคืบหน้าเป็นเพียง% ต่อไฟล์ไม่แสดงความคืบหน้าด้วยจำนวนไบต์โดยรวมที่คัดลอกจากทั้งหมด /% ของสิ่งนั้น
barlop

น่าสนใจมาก @bbodenmiller ชื่นชม ... น่ารำคาญมากในการบันทึกไฟล์เหล่านี้ ...
toscanelli

18

หากคุณไม่ต้องการผลลัพธ์เลยนี่เป็นวิธีที่ง่ายที่สุด:

robocopy src dest > nul

หากคุณยังต้องการข้อมูลบางส่วนและต้องการตัดเฉพาะบางส่วนของเอาต์พุตให้ใช้พารามิเตอร์จากR.Koene'sคำตอบ


5
ฉันทดสอบ> log:nulภายใต้ win8.1 x64 มีไฟล์บันทึกว่างเปล่า > nulทำงานได้ตามที่คาดไว้
Ivan Yan

1
logไฟล์"ว่าง" ที่สร้างขึ้นไม่ได้ว่างเปล่าเลย เป็นเพียงการบันทึกข้อมูลไปยังสตรีมสำรองที่ Explorer มองไม่เห็น แต่ยังคงมีอยู่ในดิสก์อยู่มาก (คุณสามารถตรวจสอบได้โดยใช้dir /rคำสั่งเพื่อแสดง) @IvanYan ถูกต้อง> nulเป็นคำสั่งที่ถูกต้องในการละทิ้งผลลัพธ์ทั้งหมด
jmbpiano

16

ใน PowerShell ฉันชอบใช้:

robocopy src dest | Out-Null

หลีกเลี่ยงการจำสวิตช์บรรทัดคำสั่งทั้งหมด


เมื่อทำเช่นนี้มันฆ่าคำสั่งทันทีโดยไม่มีการเตือน ฉันใช้/PURGE.
Sawtaytoes

Out-Null ไม่ควรมีผลต่อการเรียกใช้คำสั่ง robocopy เพียงแค่เปลี่ยนเส้นทางสตรีมเอาต์พุต msdn.microsoft.com/en-us/powershell/reference/4.0/…คุณอาจลองลบ Out-Null ออกเพื่อดูว่าเอาต์พุตที่ถูกทิ้งมีเบาะแสเกี่ยวกับสิ่งที่เกิดขึ้นหรือไม่
Aaron Tribou

2

วิธีแก้ปัญหาหากคุณต้องการให้เงียบสนิทคือการเปลี่ยนทิศทางผลลัพธ์ไปยังไฟล์ (และเลือกที่จะลบในภายหลัง)

Robocopy src dest > output.log
del output.log

6
ด้วย> NUL เพียงแค่แยกเอาต์พุตออกไปไม่มีไฟล์ให้ต้องกังวล
Sellorio

1
หรือไปที่Out-Nullใน PowerShell
orad

2

robocopy มีแนวโน้มที่จะพิมพ์บรรทัดว่างแม้ว่าจะไม่ได้ทำอะไรก็ตาม ฉันกำลังกรองบรรทัดว่างโดยใช้คำสั่งดังนี้:

robocopy /NDL /NJH /NJS /NP /NS /NC %fromDir% %toDir% %filenames% | findstr /r /v "^$"

0

> null ไม่ทำงานในเครื่องหมายคำพูด จะเห็น> null เป็นชื่อไฟล์แบตช์

robocopy ไม่ทำงาน !!!

นี่คือไฟล์แบตช์ใหม่:

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\EnvBackup c:\offsite_backup\EnvBackup

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\shares c:\offsite_backup\shares

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\Quickbooks_Backup c:\offsite_backup\Quickbooks_Backup

-1

ไม่จำเป็นต้องเปลี่ยนเส้นทางไปยังไฟล์และลบทิ้งในภายหลัง ลอง:

Robocopy src dest > null 

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