Ich möchte RoboCopy ausführen, das die Konsole mit% progress aktualisiert, aber die Protokolldatei nicht mit% progress überfüllt.
Der folgende RoboCopy-Befehl führt die gewünschte Kopie aus und hängt die Protokollinformationen an die Protokolldatei an.
RoboCopy <source> <dest> /log+:<log file> /tee
Das Problem ist, dass die Protokolldatei mit% progress-Updates überfüllt ist. Daher muss ich den Befehl folgendermaßen ändern:
RoboCopy <source> <dest> /log+:<log file> /tee /np
Jetzt ist das Problem, dass ich keine% Fortschrittsaktualisierungen auf dem Bildschirm erhalte.
Ich habe http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx jetzt einige Male gelesen und kann keine Schalter finden, die ich brauche. Vermisse ich etwas oder ist das, was ich erreichen möchte, nicht möglich?
Antworten:
Da dies so lange niemand beantwortet hat, dachte ich, ich würde ein paar Dinge vorschlagen.
Wenn Sie Batch-Skripte verwenden, sollte es nicht zu schwierig sein, sed zu verwenden, um unerwünschte Fortschrittsinformationen aus der Protokolldatei zu entfernen. Ich habe nicht genug Erfahrung damit, um Ihnen eine Lösung zu bieten, ohne etwas Zeit damit zu verbringen.
sed
In UnxUtils gibt es eine einzige EXE-Dateiversion (mit einer etwas aktuelleren Version in der Update-Zip- Datei ).Eine andere Möglichkeit wäre, XXCOPY anstelle von zu verwenden
Robocopy
. Es hat eine wirklich lächerliche Anzahl von Schaltern (über 230), mit denen Sie tun können, was Sie wollen. Sie müssen einen ganzen Abend damit verbringen, auszuwählen, welche Sie verwenden möchten. Es gibt auch ein GUI-Fortschrittsdialogfeld, wenn Sie dies bevorzugen.Es gibt eine kostenlose Version für den persönlichen Gebrauch, die nicht für automatisiertes Scripting verwendet werden kann, da Sie im Gegensatz zur kostenpflichtigen Version interaktiv den Anweisungen folgen müssen.
Eine weitere Alternative ist RichCopy mit einer grafischen Benutzeroberfläche , über die Sie Ihre Optionen auswählen können. Es kann Ihnen dann die Befehlszeile Ihrer Operation zur Verwendung in Batch-Skripten geben.
quelle
Betreff: Robokopie und protokollierter Fortschrittslärm
Lösung: Verwenden Sie nur / TEE und lassen Sie es das 'Rauschen' protokollieren, sonst sehen Sie keinen Fortschritt. Verwenden Sie dann sed, wie zuerst vorgeschlagen, um die Protokolldatei wie folgt zu bereinigen:
sed -i.bak "s / \ x0d. * \ x0d. * $ //" logfile.txt
Entfernen Sie die .bak-Datei, wenn Sie keine nicht fixierte Sicherung wünschen. sed ist hier für Fenster verfügbar und funktioniert einwandfrei, zumindest für die Verwendung in einer * Zeile.
http://gnuwin32.sourceforge.net/packages/sed.htm
* (sed-Befehle in Unix-Bash / Cshell-Skripten sind oft über mehrere Zeilen verteilt, was mehr Flexibilität und Komplexität bietet. Ich erwarte nicht, dass diese Art von sed-Befehlen mit Windows-Cmd-Skripten funktioniert, aber sed ist unter Windows immer noch nützlich.)
quelle
stdout
durchsed
direkt?tee
Befehl anstelle von Robocopys/TEE
Schalter verwendet werden, aber ich habe gerade festgestellt, dass er TeilTCC/LE
eines Standardbefehls ist und kein StandardbefehlCMD
. Es ist jedoch in verfügbarPowerShell
.