130834
11.05.2017
9154
16
0
RoboCopy Log Fehler?
Hallo liebe Administratoren,
Bin heute auf ein komisches Problem gestoßen.
Folgender Code:
by rubberman
Das Problem:
Normalerweise sollte das Log das erzeugt wird so aussehen:
Jetzt sieht er aber so aus...:
Das ist sehr unpraktisch.
Nach Google suche hab ich herausgefunden das dies nicht passiert wenn man mit dem aktuellen Ordner in C:\ ( oder vergleichbar ) ist, ansonsten wird das Log zu diesem Müll oben.
Da ich das Log weiterverarbeiten möchte, ist der aktuelle Status der Ausgabe unbrauchbar.
Weiß da jemand was?
Ganz nebenbei in der Windows 7 Version von RoboCopy ist das Unilog nur
chinesische Zeichen durch einen Bug. Falls dazu jemand eine Lösung weiß wäre ich unendlich dankbar.
Einen schönen Abend noch allerseits.
~ clragon
Bin heute auf ein komisches Problem gestoßen.
Folgender Code:
robocopy "C:\." NULL "*.*" /l /s /ndl /xx /np /nc /ns /njh /njs /fp /unilog:"%cd%\log.txt" /mt 5 /xd "*windows*"
Das Problem:
Normalerweise sollte das Log das erzeugt wird so aussehen:
File1
File2
File3
Jetzt sieht er aber so aus...:
Das ist sehr unpraktisch.
Nach Google suche hab ich herausgefunden das dies nicht passiert wenn man mit dem aktuellen Ordner in C:\ ( oder vergleichbar ) ist, ansonsten wird das Log zu diesem Müll oben.
Da ich das Log weiterverarbeiten möchte, ist der aktuelle Status der Ausgabe unbrauchbar.
Weiß da jemand was?
Ganz nebenbei in der Windows 7 Version von RoboCopy ist das Unilog nur
chinesische Zeichen durch einen Bug. Falls dazu jemand eine Lösung weiß wäre ich unendlich dankbar.
Einen schönen Abend noch allerseits.
~ clragon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 337517
Url: https://administrator.de/contentid/337517
Ausgedruckt am: 07.11.2024 um 21:11 Uhr
16 Kommentare
Neuester Kommentar
Hallo,
mit welchem Editor machst Du das denn auf? Kann der überhaupt Unicode?
Gruß,
Jörg
mit welchem Editor machst Du das denn auf? Kann der überhaupt Unicode?
Gruß,
Jörg
Hallo,
Nur die Art wie ein Waagenrücklauf und Zeilenvorschub Interpretiert wird ist je nach OS sehr unterschiedlich. Dein Windows braucht im Editor zwingend seine 0D 0As. Dein Wordpad geht damit schon wieder anders um. Nimm mal Wordpad. Dein Parameter UniLog ist der Schuldige.
Gruß,
Peter
[Nachtrag]
Der Ordner NULL wird natürlich angelegt. Umleitung zu NUL liefert Fehler 53 Zugriff auf Zielverzehniss \\.\NUL\ Der Netzwerkpfad wurde nicht gefunden...
[/Nachtrag]
Zitat von @130834:
Bin heute auf ein komisches Problem gestoßen.
Kopf wohl leer Bin heute auf ein komisches Problem gestoßen.
Normalerweise sollte das Log das erzeugt wird so aussehen:
Wird es ja.Nur die Art wie ein Waagenrücklauf und Zeilenvorschub Interpretiert wird ist je nach OS sehr unterschiedlich. Dein Windows braucht im Editor zwingend seine 0D 0As. Dein Wordpad geht damit schon wieder anders um. Nimm mal Wordpad. Dein Parameter UniLog ist der Schuldige.
Da ich das Log weiterverarbeiten möchte, ist der aktuelle Status der Ausgabe unbrauchbar.
Fragt sich womit du das weiterverarbeiten willst. Was macht das mit den nicht druckbaren Zeichen wie ein 0D 0A (Carriage Return, Line Feed)? Schau dir mal deine Datei in einen Hex Editor oder Notepad++ an und vergleiche wenn du das Log ohne UniLog speicherst.Weiß da jemand was?
Click. Turn brian on before guessing Ganz nebenbei in der Windows 7 Version von RoboCopy ist das Unilog nur chinesische Zeichen durch einen Bug. Falls dazu jemand eine Lösung weiß wäre ich unendlich dankbar.
Robocopy in Powershell ausführen.robocopy "C:\." NULL "*.*" |out-file "WasImmerDuWillst.log"
Peter
[Nachtrag]
Der Ordner NULL wird natürlich angelegt. Umleitung zu NUL liefert Fehler 53 Zugriff auf Zielverzehniss \\.\NUL\ Der Netzwerkpfad wurde nicht gefunden...
[/Nachtrag]
Zitat von @130834:
Hallo liebe Administratoren,
Bin heute auf ein komisches Problem gestoßen.
Folgender Code:
by rubberman
Ähm Frage: heißt das nicht NUL? Wie ich würde jetzt mal davon ausgehen, Du legst eine Datei namens NULL an.Hallo liebe Administratoren,
Bin heute auf ein komisches Problem gestoßen.
Folgender Code:
robocopy "C:\." NULL "*.*" /l /s /ndl /xx /np /nc /ns /njh /njs /fp /unilog:"%cd%\log.txt" /mt 5 /xd "*windows*"
>
Wenn das so gewollt ist.
[Edith] Habe es gerade unter WIN 10 (Build 1607) ausprobiert. Und hier wird die Datei mit dem Notepad korrekt angelegt und angezeigt.
Gruss Penny.
Ähm Frage: heißt das nicht NUL? Wie ich würde jetzt mal davon ausgehen, Du legst eine Datei namens NULL an.
Hab ja nur darauf gewartet, dass jemand drüber stolpert Es geht nicht darum irgend etwas zu kopieren, sondern nur um die Ausgabe, die weiterverarbeitet wird. Es wird also nichts angelegt/kopiert (Option /L). NUL wird von robocopy an dieser Stelle nicht akzeptiert. NULL ist ein Workaround, der aber voraussetzt, dass es kein Verzeichnis (mit Inhalt) namens NULL im Arbeitsverzeichnis gibt. Zur Not könnte man auch vorher einen zufälligen Name per %random% generieren und das in eine Prüfschleife packen um sicher zu stellen, dass es kein Verzeichnis mit diesem Name gibt ...Schau mir das heute Abend mal an.
@130834 den "chinesische Zeichen Bug" werde ich vermutlich nicht nachstellen können. Öffne die Datei in einem HEX Editor und mach mal ein Screenshot vom Dateianfang. Vielleicht findet sich die Ursache und ein Workaround.
Grüße
rubberman
Im Hex Editor so
Oh, das ist ein Bug der nicht umgangen werden kann. Die ersten beiden zeichen sind das Byte Order Mark für UTF-16 LE (was man bei Microsoft als "Unicode" versteht). Das führt dazu, dass der nachfolgende Text vom Editor 2-Byte- (bei Surrogates 4-Byte-) weise gelesen wird, so wie das für UTF-16 auch richtig wäre. Der gesamte nachfolgende Text ist aber ANSI codiert. Das führt die /unilog Option ad absurdum. Anders gesagt, selbst wenn du das Byte Order Mark entfernst, hast du anschließend trotzdem nur ANSI.Kopiert man die Windows 10 robocopy aus System32 und verwendet sie allein
Natürlich. Die meisten Kommandozeilentools im System32 Verzeichnis funktionieren nur in dieser Umgebung zuverlässig, da sie Abhängigkeiten zu anderen Dateien (DLL, MUI, ...) haben.Nur... warum ist es sooo Langsam
Weil es die gesamten Ordnerstrukturen rekursiv durchlaufen muss und robocopy alles was gefunden wird anhand der übergebenen Optionen filtern muss.loggt dabei auch noch Zugriff verweigert
Weil der Zugriff auf den Papierkorb verweigert wird. Dessen Inhalt ist virtualisiert.Grüße
rubberman
Umlaute sind doch kein Problem, oder? Hab's jetzt nicht getestet, aber ein
sollte es tun. Natürlich dasselbe, wenn du die Datei anschließend wieder per Batch parst
(Oder du lässt es für beide Male weg, was dann im Editor etwas merkwürdig aussieht, aber nicht für die Konsoleprogramme.)
Grüße
rubberman
>nul chcp 1252
sollte es tun. Natürlich dasselbe, wenn du die Datei anschließend wieder per Batch parst
(Oder du lässt es für beide Male weg, was dann im Editor etwas merkwürdig aussieht, aber nicht für die Konsoleprogramme.)
Ich würde Robocopy halt gerne mitnehmen
Nein, nein, nein. Welches willst du denn mitnehmen? Die 32- oder die 64-Bit Version? Was ist wenn du in den WOW64 Modus rein läufst? Vergiss das besser gleich wieder Grüße
rubberman
Ich kann ohne unilog gehen und die Pfade funktionieren obwohl sie im Editor schlecht aussehen?
Sicher funktioniert Batch immer nur mit ASCII Zeichen. ANSI funktioniert, solange die Zeichen in der OEM Code Page (das ist die, die Konsoleanwendungen verwenden) vorhanden sind, oder du per CHCP auf eine Code Page umstellst die diese Zeichen unterstützt. Unicode hilft dir in Batch in der Regel gar nicht, da du für dessen Verarbeitung bspw. per TYPE wieder in die ANSI Code Page konvertieren musst.Ich würd .. ehm... die 32bit version mitnehmen da die auch in 64 bit laufen würde...?
Und dann? Lieferst du die 32 Bit System-DLLs mit aus und packst sie in das Arbeitsverzeichnis, würden die anderen Tools unter Umständen auch darauf zugreifen und der ganze Kram geht in die Grütze. Kann auch sein, dass das völlig wurscht ist und Robocopy trotzdem auf die registrierten DLLs im System32/SysWOW64 Verzeichnis zugreifen. Wenn die nicht zur Robocopy Version passen, hat es sich auch erledigt.Grüße
rubberman
EDIT: habs herausgefunden. Jetzt weiss ich es. Kopiert man die Windows 10 robocopy aus System32 und verwendet sie allein anstatt der System exe, wird dieses gewurschtel erzeugt. nur; warum?
Auch das Unterverzeichnis de-DE (bzw. gewünschte/verwendete Sprache) ist anzulegen. Darin einzig und allein die Datei Robocopy.exe.mui.
Natürlich haben die Einwände von Rubberman ihre Berechtigung...