Fehlen in den RoboCopy-Protokolldateien Leerzeichen?

Fehlen in den RoboCopy-Protokolldateien Leerzeichen?

Ich arbeite also an einem Skript, um mit RoboCopy eine Reihe von Dateien zu kopieren und zu protokollieren, was kopiert wird.

Es funktioniert einigermaßen gut, mit Ausnahme der Protokolldateien. Sie sehen normalerweise so aus:

C:\Users\Tech\Documents\desktop.initechscan1.jpgtechscan2.jpgtechscan3.jpgtechscan4.jpgtechscan5.jpgwsus.jpgwsus2.jpgC:\Users\Tech\Documents\My Music\C:\Users\Tech\Documents\My Pictures\C:\Users\Tech\Documents\My Videos\C:\Users\Tech\Documents\My Digital Editions\

Wie Sie sehen, scheinen im Protokoll alle Leerzeichen und Trennzeichen zwischen den Einträgen zu fehlen. Kann ich etwas tun, um das zu beheben? Es ist ziemlich frustrierend.

Die Befehlszeile, die ich verwende, ist diese:

C:\Users\Tech\Desktop>Robocopy.exe C:\Users\Tech\Documents c:\Temp /e /l /b /xj /xf ntuser.* desktop.ini *.lnk /np /njh /log:migratedfiles.txt /v

Ich habe /l dort eingefügt, da ich debugge und es der einfachste Weg ist, zu verhindern, dass alles eine Million Mal kopiert wird.

Antwort1

Ich hatte das gleiche Problem mit dem Robocopy-Protokoll, das in eine Zeile gequetscht wurde und nur sehr wenige lesbare Informationen enthielt. Was das Problem für mich behoben hat, ist etwas, das ich auch in Ihrem Code sehen kann: Sie führen den Robocopy-Befehl von Ihrem Desktop aus aus. Versuchen Sie, ihn beispielsweise von Ihren Dokumenten aus auszuführen (verschieben Sie die Bat-Datei, wenn Sie eine verwenden, oder ändern Sie das Verzeichnis in Ihrer Eingabeaufforderung, wenn Sie direkt von cmd aus gehen).

Ich habeNEINkeine Ahnung, warum, aber für mich hat das das Problem sofort behoben. Sobald ich cd... gedrückt und von c:\users\ishan\desktop nach c:\users\ishan gewechselt habe, hat Robocopy wieder ein ordentliches Protokoll angezeigt. Ich selbst verwende eine .bat-Datei für den Robocopy-Befehl, also habe ich diese in meine Dokumente verschoben, sie von dort aus ausgeführt und presto, Problem gelöst.

Hoffe, das hilft auch bei Ihrem Problem.

Antwort2

Ich hatte mit demselben Problem zu kämpfen und glaube, ich habe die Antwort gefunden. Sie müssen ein wenig suchen, aber danach sollte es ziemlich einfach sein

roboSuchen Sie auf Ihrem Laufwerk nach oder ähnlich C:. Sie möchten die Speicherorte von RoboCopy.EXEund finden RoboCopy.EXE.MUI. Auf einem 32-Bit-Windows-7-Testsystem, das ich verwendet habe, habe ich die besagten Dateien in den folgenden Verzeichnissen gefunden:

C:\Windows\System32\RoboCopy.EXE
C:\Windows\System32\en-US\RoboCopy.EXE.MUI

Kopieren Sie diese Dateien in ein separates Verzeichnis, behalten Sie jedoch die Verzeichnisstruktur bei, die Sie nach finden System32. Beispiel:

C:\Test_PGM\RoboCopy.EXE
C:\Test_PGM\en-US\RoboCopy.EXE.MUI

Führen Sie es nun RoboCopyaus dem alternativen Verzeichnis aus. Beispiel:

C:\>"C:\Test_PGM\RoboCopy.EXE" "C:\Test_SRC" "C:\Test_DST" /COPYALL

Dadurch wird die korrekt formatierte Ausgabe bereitgestellt.

Antwort3

Ich glaube, der beim Ausführen der Batchdatei verwendete PFAD ist entscheidend. Die Pfadvariable hat (für mich) %SystemRoot%\system32; %SystemRoot%; usw.

Ein Job, der eine Bat-Datei mit ROBOCOPY.EXE /JOB:jobname.RCJ ausführt, wird jedoch anders ausgeführt als C:\Windows\System32\ROBOCOPY.EXE /JOB:jobname.RCJ

Damit der Job korrekt ausgeführt wird, gebe ich im Aufruf den vollständigen Pfad an … Ich habe zwei Versionen von Robocopy.exe gefunden (beide haben dasselbe Alter und dieselbe Produktversion und funktionieren ordnungsgemäß), daher weiß ich nicht, welcher Pfad ohne Angabe eines vollständigen Namens eine andere Version der ausführbaren Datei aufweist – aber es ist falsch.

verwandte Informationen