Wie kann ich Robocopy in der Befehlszeile außer für den Fortschritt stumm schalten?

105

Ich verwende Robocopy, um Backups mit einem PowerShell-Skript zu erstellen, und es ist ziemlich beeindruckend, außer dass ich möchte, dass nur der prozentuale Fortschritt beim Kopieren angezeigt wird und nicht alle anderen Informationen.

Die anderen Informationen überladen das Befehlsfenster, das ich bereinigen und einfach machen würde, damit Sie den Gesamtfortschritt der Sicherung leicht sehen können.

Ist das möglich?

Danke, Andrew

AndyGeek
quelle

Antworten:

192

Ich habe die folgenden 2 Parameter hinzugefügt: /np /nfl

Zusammen mit den 5 Parametern aus der AndyGeek'sAntwort erhalten /njh /njs /ndl /nc /nsSie also Folgendes und es ist still:

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.
R. Koene
quelle
2
Es wird immer noch die Meldung "100%" angezeigt.
Scott Chu
13
Dadurch wird immer noch eine einzelne leere Zeile gedruckt, die in Batchdateien erkennbar ist.
wqw
7
/nc /nsist nicht erforderlich, wenn /nfl /ndlangegeben.
Vojtěch Dohnal
3
@wqw, füge einfach ein> NUL an der EOL hinzu und die leere Zeile ist Geschichte.
Herb
2
@ScottChu Dies druckt 100%, wenn Sie den Schalter / mt verwenden. Ich denke, Sie müssen sich entscheiden, ob Sie Multithreading möchten oder keine% s angezeigt werden
Loaf
39

Ich habe es mit den folgenden Optionen gemacht:

/njh /njs /ndl /nc /ns

Beachten Sie, dass der Dateiname weiterhin angezeigt wird, aber das ist in Ordnung für mich.

Weitere Informationen zu Robocopy finden Sie unter http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx

AndyGeek
quelle
3
/ nfl, um Dateinamen zu unterdrücken
xagyg
12
Erscheint, wenn Sie verwenden /miroder /purgedie zusätzlichen Dateien noch protokolliert sind. Ich kann keinen Weg finden, das auszuschalten.
bbodenmiller
1
Beachten Sie, dass bei Robocopy der Fortschrittsbalken nur% pro Datei ist und keinen Fortschritt mit der Gesamtzahl der Bytes anzeigt, die aus der Summe /% davon kopiert wurden.
Barlop
Sehr interessante @bbodenmiller Wertschätzung ... Sehr nervige Protokollierung dieser Dateien ...
toscanelli
18

Wenn Sie überhaupt keine Ausgabe wünschen, ist dies der einfachste Weg:

robocopy src dest > nul

Wenn Sie noch einige Informationen benötigen und nur Teile der Ausgabe entfernen möchten, verwenden Sie die Parameter aus der R.Koene'sAntwort.

SHernandez
quelle
5
Ich > log:nulteste unter win8.1 x64, es gibt eine leere Protokolldatei. > nulfunktioniert wie erwartet.
Ivan Yan
1
Die "leere" logDatei, die dadurch generiert wird, ist nicht einmal wirklich leer. Es werden lediglich die Daten in einem alternativen Stream gespeichert, der für den Explorer unsichtbar ist, aber noch immer auf der Festplatte vorhanden ist. (Sie können dies überprüfen, indem Sie den dir /rBefehl verwenden, um es anzuzeigen.) @IvanYan ist korrekt, > nulist der richtige Befehl, um die Ausgabe vollständig zu verwerfen.
jmbpiano
16

In PowerShell verwende ich gerne:

robocopy src dest | Out-Null

Sie müssen sich nicht alle Befehlszeilenoptionen merken.

Aaron Tribou
quelle
Dabei wurde der Befehl sofort ohne Warnung beendet. Ich habe benutzt /PURGE.
Sawtaytoes
Out-Null sollte keine Auswirkung auf die Ausführung des Robocopy-Befehls haben. Es leitet einfach den Ausgabestream um. msdn.microsoft.com/en-us/powershell/reference/4.0/… Sie können versuchen, Out-Null zu entfernen, um festzustellen , ob die verworfene Ausgabe einen Hinweis darauf bietet, was passiert.
Aaron Tribou
2

Eine Problemumgehung besteht darin, die Ausgabe in eine Datei umzuleiten (und sie später optional zu löschen), wenn Sie möchten, dass sie absolut stumm ist.

Robocopy src dest > output.log
del output.log
HSM
quelle
6
auch> NUL wirft nur die Ausgabe weg, keine Datei, über die man sich Sorgen machen muss.
Sellorio
1
oder Pipe zu Out-Nullin PowerShell
orad
2

Robocopy neigt auch dazu, leere Zeilen zu drucken, selbst wenn es nichts tut. Ich filtere leere Zeilen mit dem folgenden Befehl weg:

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

Die> null funktioniert in den Anführungszeichen nicht. Es sieht die> null als Batch-Dateinamen.

Die Robokopie ohne Ausgabe hat funktioniert !!!

Hier ist die neue Batch-Datei:

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
Jason L.
quelle
-1

Sie müssen nicht zu einer Datei umleiten und später löschen. Versuchen:

Robocopy src dest > null 
areB
quelle
2
Dadurch wird eine Datei erstellt nullund das Protokoll in diese Datei geschrieben . Es beruhigt es in der Befehlszeile auf Kosten der Schreibvorgänge des Speicherlaufwerks.
Sawtaytoes