Wie verstecke ich "Extra File" - und "100%" -Zeilen vor der Robocopy-Ausgabe?

17

Ich habe ein Robocopy-Skript zum Sichern unserer Brennofen-Repositorys, das jede Nacht ausgeführt wird und ungefähr so ​​aussieht:

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

In der Ausgabe gibt es eine Menge Zeilen, die "Extra-Dateien" enthalten, wie folgt:

*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

Zusätzlich gibt es dann Hunderte von Zeilen am unteren Rand, die nichts als "100%" enthalten, wie folgt:

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

Zusätzlich zu den enormen Protokolldateien (es gibt viele Ordner / Dateien in Kiln Repos) ist es ärgerlich, ab und zu die Protokolle zu durchsuchen, um festzustellen, ob alles in Ordnung war.

  1. Wie kann ich verhindern, dass "Extra Files" im Protokoll angezeigt werden? (edit: die ganzen Zeilen, nicht nur der Text als / NC wird gestoppt)
  2. Wie kann ich verhindern, dass diese dummen "100%" -Linien im Protokoll angezeigt werden?

Ich habe jede erdenkliche Schalterkombination ausprobiert (die aktuellen Schalter sind oben im Befehl aufgeführt), aber keine scheint diese zu verbergen!

Danny Tuppeny
quelle
Laut ss64.com/nt/robocopy.html sollte es funktionieren. Haben Sie versucht, die Parameterreihenfolge zu ändern, um die Dokumentation zu spiegeln? Das wäre: / L / NP / LOG: Datei / UNILOG: Datei / LOG +: Datei / UNILOG +: Datei / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
Luiz Angelo

Antworten:

8

Hab gerade gemerkt, dass dir dort eine / NC fehlt.

/ NC: Keine Klasse - Dateiklassen nicht protokollieren.

Klassendateien sind ... Was bedeutet Robocopy, optimiert, einsam und extra?

Also würde ich versuchen: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

Bearbeiten 1

Mein Fehler. Hab nicht gesehen, dass du / NC schon erwähnt hast

Ich habe hier getestet. Es scheint, dass die / MIR-Option die Protokollierungsoptionen ignoriert. Auch / MT bringt es durcheinander und addiert die 100%.

Der einzige Weg, auf dem ich zur Arbeit kam, war

D: \ robocopy> Robocopy-Quellenziel / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt ".

* Es funktioniert tatsächlich mit / MIR. Aber Sie müssen / NFL und / NDL angeben. * Ich weiß nicht, ob das für Sie akzeptabel ist.

Wenn Sie versuchen, / MT, wird es immer noch die dumme 100% zeigen

Bearbeiten 2

Ich weiß, dass die Frage zu Robocopy lautete, aber ich denke, Sie sollten RichCopy ausprobieren http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

Hier ist die Befehlszeile:

RichCopy "D: \ Robocopy \ Source" "D: \ Robocopy \ Destination" / P / QO / QP "D: \ Robocopy \ Report.log" / UE / US / UD / UPC / UFC / USC / UPR / UET

Es startet die grafische Benutzeroberfläche von RichCopy und wird geschlossen, wenn Sie fertig sind.

Und hier ist das Protokoll

28/11/2012 11: 35: 19,0, Kopierstart,

28/11/2012 11: 35: 20,0, Quellpfad: D: \ robocopy \ source,

28/11/2012 11: 35: 20,0, Zielpfad: d: \ robocopy \ destination,

28/11/2012 11: 35: 20,0, Quellendateizahl: 12 Dateien,

28/11/2012 11: 35: 20,0, Anzahl der kopierten Dateien: 13 Dateien,

28/11/2012 11: 35: 20,0, Anzahl gelöschter Dateien: 1.224 Dateien,

28/11/2012 11: 35: 20,0, abgelaufene Zeit: 00:00:01,

28/11/2012 11: 35: 20,0, Durchschnittliche Leistung: 1.641.528 Bytes / Sek.,

28/11/2012 11: 35: 20,0, Durchschnittliche Leistung: 13 Dateien / Sek.,

28/11/2012 11: 35: 20,0, Kopie vollständig, D: \ robocopy \ source

Luiz Angelo
quelle
1
/ NC entfernt nur die Spalte "Extra File", sodass der Text nicht angezeigt wird. Der Rest der Zeile ist noch enthalten. Ich will die Leitung überhaupt nicht. Ich möchte nur die Zusammenfassung :(
Danny Tuppeny
Mein Fehler. Hab nicht gesehen, dass du das schon erwähnt hast. Ich habe hier getestet. Es scheint, dass die / MIR-Option die Protokollierungsoptionen ignoriert. Also / MT vermasselt es. Die einzige Möglichkeit, mit der ich arbeiten konnte, war "D: \ robocopy> robocopy source destination / MIR / B: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt". Wenn Sie versuchen, / MT, wird es immer noch die dummen 100% zeigen.
Luiz Angelo
1
Die 100% sind der schlechteste Teil (weitaus mehr als zusätzliche Dateien); Ich habe nicht gemerkt, dass MT dies tut. Wenn dies keinen großen Vorteil bringt, kann es das Problem beheben.
Danny Tuppeny
Als richtig markieren, da es eine Lösung für die 100% ist, und ich glaube nicht, dass es eine Lösung für die "Extra-Datei" gibt, die mit / MIR protokolliert :(
Danny Tuppeny
Ich habe gerade meine ursprüngliche Antwort bearbeitet. Poste einfach einen neuen Kommentar, damit du ihn nicht verpasst.
Luiz Angelo
5

Die /XXOption schließt die Auflistung der zusätzlichen Dateien aus. Perverserweise ist diese Option in den File SelectionOptionen aufgeführt, nicht Logging. Es ist das Gegenteil der /XProtokollierungsoption, denke ich.

Keith
quelle
1
Ich glaube, / XX hindert Sie daran, die zusätzlichen Dateien auszuwählen, und / X dient nur zur Protokollierung, ermöglicht es Ihnen jedoch, NOCH MEHR zusätzliche Dateien anzuzeigen! Der / XX hat den Trick für mich getan.
Sonjz
-1, weil / XX die zusätzliche Datei auf dem Ziel belässt, anstatt sie zu löschen, wie es der Spiegelungsprozess erwartet.
mark
3

Ich denke, das könnte funktionieren:

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

Leiten Sie die Ausgabe einfach auf "find" mit / V, um Zeilen auszuschließen, die den angegebenen Text "* Extra File" enthalten.

Svein Terje Gaup
quelle
Wie kann ich den% Fortschritt (0 bis 100% Zähler) nur aus dem Protokoll ausschließen (aber immer noch auf der Konsole sichtbar)?
PeterCo
0

wie wäre es mit den Schaltern

 /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"

Also hast du

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"
  • Das Double %% muss ein% in der Suchzeichenfolge enthalten
  • die 2> & 1 Umleitungen an stdout die stderr Strom , weil einige Meldungen an stderr geschrieben und wir wollen , dass diese Linien wie der / LOG Schalter erfassen tut.
  • Mit den beiden Befehlen findstr mit der Option / v werden alle Zeilen gefunden, die keine Suchzeichenfolge enthalten
  • Der > "Protokolldateiname" leitet die endgültige Ausgabe in Ihre Protokolldatei um. Wenn Sie normalerweise / LOG: + verwenden würden, verwenden Sie stattdessen >> "log filename"

Anmerkungen: Wenn Sie dies in einem Powershell-Skript verwenden, wie es scheint, müssen Sie findstr anstelle von find wie in einer .bat- oder .cmd-Datei verwenden. Beachten Sie, dass / L und / C: von find nicht unterstützt werden, für den Befehl find jedoch nicht erforderlich sind.

BeowulfNode42
quelle