JuppDietz 10 Geschrieben 17. Februar 2011 Melden Teilen Geschrieben 17. Februar 2011 Moin. Irgendwie zweifle ich gerade an der PowerShell: Ich gebe mit mit get-content bzw. dem Alias cat eine txt-Datei zeilenweise aus. Die Ausgabe ist wie folgt: 02008872101911517376 30E90356745 Nun habe ich die Datei mit dem Kommando tail in der altbewährten cmd ausgegeben und erhalte bei der gleichen Datei die Ausgabe 0 2 0 0 8 8 7 2 1 0 1 9 1 1 5 1 7 3 7 6 3 0 E 9 0 3 5 6 7 4 5 Im Hex-Editor sehe ich in der Datei nach jedem Zeichen ein 00. Die DAtei wird in einem PS-Script erzeugt (auch hier per cat). Nun benötige ich die Datei aber ohne die Leerstellen, da die Daten später in einem anderen Programm wieder aufgegriffen werden und dann die Leerstellen bzw. 00 zu Fehlern führen. Hat jemand eine Idee? Danke und Gruß Jupp Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Februar 2011 Melden Teilen Geschrieben 17. Februar 2011 Hast du ein Encoding beim Ausgeben angegeben? Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 17. Februar 2011 Autor Melden Teilen Geschrieben 17. Februar 2011 Nein. cat hat doch zum Encoding meines Wissens keinen Parameter?! Oder habe ich nun etwas falsch verstanden? Meine Ausgabe ist auf der Console bzw. dann auch mit einer Ausgabeumleitung in eine neue Datei geschrieben... Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Februar 2011 Melden Teilen Geschrieben 17. Februar 2011 Dann nutze out-file statt cat. Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 17. Februar 2011 Autor Melden Teilen Geschrieben 17. Februar 2011 Hm. out-file ersetzt doch nur die Ausgabeumleitung (">")?! Ich könnte statt cat c:.\temp.txt > d:\test.txt dann cat c:\temp.txt | out-file -filepath d:\test.txt schreiben. out-file leitet doch nur die Ausgabe von der Konsole in eine Datei um und gibt mir keine andere Datei zeilenweise aus oder sehe ich da etwas falsch? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Februar 2011 Melden Teilen Geschrieben 17. Februar 2011 Ja (jein eigendlich. Nicht von der Konsole, sondern von vor der Pipe um genau zu sein). Für einlesen gibt es get-content. Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 18. Februar 2011 Autor Melden Teilen Geschrieben 18. Februar 2011 cat ist nur ein Alias für get-content ;-)) Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 18. Februar 2011 Melden Teilen Geschrieben 18. Februar 2011 Hallo, ersetz doch die Leerzeichen etwa so: (get-content c:\temp\test.txt).replace(" ","") blub Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 18. Februar 2011 Melden Teilen Geschrieben 18. Februar 2011 Wenn das ein Encoding Problem ist, dann will man nicht die Leerzeichen ersetzen sondern es richtig machen. Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 18. Februar 2011 Melden Teilen Geschrieben 18. Februar 2011 dann müsste das richtige Encoding beim Erstellen der .txt-Datei eingestellt werden. Da steht ja nichts dazu im Text. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 18. Februar 2011 Melden Teilen Geschrieben 18. Februar 2011 Im Hex-Editor sehe ich in der Datei nach jedem Zeichen ein 00. Die DAtei wird in einem PS-Script erzeugt (auch hier per cat). Und das Problem hatte ich auch schon. Beim erstellen von Dateien per out-file kam genau solches Verhalten (leerzeilen zwischen den Zeichen) zustande. Für mich ist das ein Encoding Problem. Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 18. Februar 2011 Melden Teilen Geschrieben 18. Februar 2011 sorry, wer lesen kann, ist klar im Vorteil :cool: dann probiert mal out-file mit dem Positionsarameter -encoding default blub Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 18. Februar 2011 Autor Melden Teilen Geschrieben 18. Februar 2011 Wie stelle ich denn das Encoding bei einem get-content mit einer Ausgabe via out-file ein und welches muss es sein? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 18. Februar 2011 Melden Teilen Geschrieben 18. Februar 2011 -encoding ;) Welche es sein muss musst du wissen. -Encoding <string> Gibt den Typ der Zeichencodierung an, die in der Datei verwendet wird. Gültige Werte sind "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEnd ianUnicode", "Default" und "OEM". Der Standardwert ist "Unicode". Mit "Default" wird die Codierung der aktuellen ANSI-Codepage des System s verwendet. Mit "OEM" wird die Codepage-ID für den aktuellen Originalcomputerherste ller (OEM) des Betriebssystems verwendet. Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 18. Februar 2011 Autor Melden Teilen Geschrieben 18. Februar 2011 Ok. Der Schlauch, auf dem ich nun stand, war gigantisch :-)) Danke!! Ich habe nun ein Programm in VB geschieben und habe die Nase voll von der Woche :-) Gleich geht es nach Hause - ein schönes Wochenende!! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.