Robocopy'yi komut satırında ilerleme dışında nasıl sessiz hale getirebilirim?


105

Bir PowerShell betiği ile yedekleme yapmak için robocopy kullanıyorum ve bu oldukça harika, ancak diğer tüm bilgileri değil, kopyalarken yalnızca ilerleme yüzdesini göstermesini istiyorum.

Diğer bilgiler, temizleyip basitleştirdiğim komut penceresini karıştırıyor, böylece yedeklemenin genel ilerlemesini görmek kolay.

Mümkün mü?

Teşekkürler, Andrew

Yanıtlar:


193

Aşağıdaki 2 parametreyi ekledim: /np /nfl

AndyGeek'sCevabın 5 parametresiyle birlikte /njh /njs /ndl /nc /nsaşağıdakileri elde edersiniz ve sessizdir:

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
Hala görüntülenen "% 100" mesajı var.
Scott Chu

13
Bu yine de toplu iş dosyalarında fark edilebilen tek bir boş satır yazdırır.
wqw

7
/nc /ns/nfl /ndlbelirtildiğinde gerekli değildir .
Vojtěch Dohnal

3
@wqw, EOL'ye sadece> NUL ekleyin ve boş satır geçmiş demektir.
Herb

2
@ScottChu Bu, / mt anahtarını kullandığınızda% 100 yazdırır. Sanırım çoklu iş parçacığı kullanmak isteyip istemediğinize karar vermeniz gerekecek, yoksa% s gösterilmeyecek
Loaf

40

Aşağıdaki seçenekleri kullanarak yaptım:

/njh /njs /ndl /nc /ns

Dosya adının hala görüntülendiğini unutmayın, ancak bu benim için sorun değil.

Robocopy hakkında daha fazla bilgi için http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx adresine gidin.


3
/ nfl dosya adını
gizlemek için

12
Kullanıyorsanız /mirveya /purgefazladan dosyalar hala günlüğe kaydedilmişse görünür . Bunu kapatmanın bir yolunu bulamıyorum.
bbodenmiller

1
robocopy ile ilerleme çubuğunun dosya başına yalnızca% olduğunu, toplamdan /% 'sinden kopyalanan toplam bayt sayısıyla ilerleme göstermediğini unutmayın.
barlop

@Bbodenmiller çok ilginç ... Bu dosyaları kaydetmek çok can sıkıcı ...
toscanelli

18

Hiç çıktı istemiyorsanız, bu en basit yoldur:

robocopy src dest > nul

Hala bazı bilgilere ihtiyacınız varsa ve çıktının yalnızca bazı kısımlarını çıkarmak istiyorsanız, parametreleri R.Koene'scevaptan kullanın .


5
> log:nulWin8.1 x64 altında test ediyorum , boş bir günlük dosyası var. > nulbeklendiği gibi çalışıyor.
Ivan Yan

1
Bunun oluşturduğu "boş" logdosya gerçekten boş değil. Bu, verileri Explorer için görünmeyen, ancak diskte hala mevcut olan alternatif bir akışa kaydediyor. ( dir /rGöstermek için komutu kullanarak kontrol edebilirsiniz .) @IvanYan doğru, > nulçıktıyı tamamen atmak için doğru komut.
jmbpiano

16

PowerShell'de şunları kullanmayı seviyorum:

robocopy src dest | Out-Null

Tüm komut satırı anahtarlarını hatırlamak zorunda kalmaz.


Bunu yaparken, hiçbir uyarıda bulunmadan hemen komutu sonlandırdı. Kullanıyordum /PURGE.
Sawtaytoes

Out-Null, robocopy komutunun yürütülmesi üzerinde hiçbir etkiye sahip olmamalıdır. Sadece çıktı akışını yeniden yönlendirir. msdn.microsoft.com/en-us/powershell/reference/4.0/… Atılan çıktının neler olduğuna dair herhangi bir ipucu sunup sunmadığını görmek için Out-Null'u kaldırmayı deneyebilirsiniz.
Aaron Tribou

2

Tamamen sessiz olmasını istiyorsanız bir çözüm, çıktıyı bir dosyaya yeniden yönlendirmek (ve isteğe bağlı olarak daha sonra silmektir).

Robocopy src dest > output.log
del output.log

6
ayrıca> NUL sadece çıktıyı uzaklaştırır, endişelenecek dosya yoktur.
Sellorio

1
veya Out-NullPowerShell'e boru
orad

2

robocopy, hiçbir şey yapmasa bile boş satırlar basma eğilimindedir. Bunun gibi bir komut kullanarak boş satırları filtreliyorum:

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

0

> Null, tırnak işaretlerinde çalışmaz. Toplu dosya adı olarak> null değerini görür.

Robocopy hiçbir çıktı işe yaramadı !!!

İşte yeni toplu iş dosyası:

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

Bir dosyaya yeniden yönlendirmenize ve daha sonra silmenize gerek yoktur. Deneyin:

Robocopy src dest > null 

2
Bu, bir dosya oluşturur nullve günlüğü ona yazar. Depolama sürücüsü yazma pahasına komut satırında onu susturur.
Sawtaytoes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.