Bagaimana cara membuat robocopy diam di baris perintah kecuali untuk kemajuan?


105

Saya menggunakan robocopy untuk melakukan backup dengan skrip PowerShell, dan itu cukup mengagumkan, kecuali bahwa saya hanya ingin menampilkan persentase kemajuan sementara itu menyalin dan tidak semua informasi lainnya.

Informasi lainnya mengacaukan jendela perintah, yang akan saya bersihkan dan sederhana sehingga mudah untuk melihat keseluruhan kemajuan pencadangan.

Apakah ini mungkin?

Terima kasih, Andrew

Jawaban:


192

Saya menambahkan 2 parameter berikut: /np /nfl

Jadi bersama-sama dengan 5 parameter dari AndyGeek'sjawaban, mana yang /njh /njs /ndl /nc /nsAnda dapatkan sebagai berikut dan diam:

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
Masih ada pesan "100%" yang ditampilkan.
Scott Chu

13
Ini masih mencetak satu baris kosong yang terlihat di file batch.
wqw

7
/nc /nstidak diperlukan saat /nfl /ndlditentukan.
Vojtěch Dohnal

3
@wqw, tambahkan a> NUL di EOL, dan baris kosong adalah history.
Ramuan

2
@ScottChu Ini mencetak 100% saat Anda menggunakan sakelar / mt. Saya kira Anda harus memutuskan apakah Anda ingin multithread, atau tidak ada% s yang ditampilkan
Loaf

40

Saya melakukannya dengan menggunakan opsi berikut:

/njh /njs /ndl /nc /ns

Perhatikan bahwa nama file masih ditampilkan, tetapi tidak masalah bagi saya.

Untuk informasi lebih lanjut tentang robocopy, kunjungi http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx


3
/ nfl untuk menyembunyikan nama file
xagyg

12
Muncul jika Anda menggunakan /miratau /purgefile ekstra masih login. Tidak dapat menemukan cara untuk mematikannya.
bbodenmiller

1
perhatikan bahwa dengan robocopy bilah kemajuan hanya% per file, tidak menunjukkan kemajuan dengan jumlah keseluruhan byte yang disalin dari total /% itu.
barlop

Apresiasi @bodenmiller yang sangat menarik ... Sangat mengganggu logging file ini ...
toscanelli

18

Jika Anda tidak menginginkan keluaran sama sekali, ini adalah cara paling sederhana:

robocopy src dest > nul

Jika Anda masih memerlukan beberapa informasi dan hanya ingin menghapus bagian dari output, gunakan parameter dari R.Koene'sanswer.


5
Saya menguji di > log:nulbawah win8.1 x64, ada file log kosong. > nulbekerja seperti yang diharapkan.
Ivan Yan

1
File "kosong" yang logdihasilkan ini bahkan tidak benar-benar kosong. Ini hanya menyimpan data ke aliran alternatif yang tidak terlihat oleh Explorer, tetapi masih banyak yang ada di disk. (Anda dapat memeriksa dengan menggunakan dir /rperintah untuk menampilkannya.) @IvanYan benar, > nuladalah perintah yang benar untuk membuang keluaran seluruhnya.
jmbpiano

16

Di PowerShell, saya suka menggunakan:

robocopy src dest | Out-Null

Ini menghindari keharusan untuk mengingat semua saklar baris perintah.


Saat melakukan ini, itu segera mematikan perintah tanpa peringatan. Saya menggunakan /PURGE.
Sawtaytoes

Out-Null seharusnya tidak berpengaruh pada eksekusi perintah robocopy. Ini hanya mengarahkan aliran keluaran. msdn.microsoft.com/en-us/powershell/reference/4.0/… Anda dapat mencoba menghapus Out-Null untuk melihat apakah keluaran yang dibuang memberikan petunjuk apa pun tentang apa yang terjadi.
Aaron Tribou

2

Solusinya, jika Anda ingin benar-benar tidak bersuara, adalah mengarahkan output ke file (dan secara opsional menghapusnya nanti).

Robocopy src dest > output.log
del output.log

6
juga> NUL hanya membuang output, tidak ada file yang perlu dikhawatirkan.
Sellorio

1
atau pipa ke Out-Nulldi PowerShell
orad

2

robocopy juga cenderung mencetak garis-garis kosong meskipun tidak melakukan apapun. Saya memfilter baris kosong menggunakan perintah seperti ini:

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

0

> Null tidak berfungsi dalam tanda kutip. Ia melihat> null sebagai nama file batch.

Robocopy tidak ada output yang berfungsi !!!

Ini adalah file batch baru:

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

Tidak perlu mengalihkan ke file dan menghapusnya nanti. Mencoba:

Robocopy src dest > null 

2
Ini membuat file nulldan menulis log ke dalamnya. Ini menenangkannya di baris perintah dengan biaya penulisan drive penyimpanan.
Sawtaytoes
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.