tuxhunt3r

Powershell - Im Logfile wird nach jedem Zeichen ein Leerschlag eingefügt

geschlossengelöstFrageBatch, Shell Entwicklung
Hallo ans Forum

Ich will mit der PowerShell einige Strings und Variableninhalte an eine Textdatei anfügen.
Das Ganze sieht so aus:
$User = $Env:Username
$Zeit = get-date -format 
$Computer = $Env:Computername
"__________" | out-file -filepath \\server\share$\log.txt -append  
$User | out-file -filepath \\server\share$\log.txt -append
$Zeit | out-file -filepath \\server\share$\log.txt -append
$Computer | out-file -filepath \\server\share$\log.txt -append

Der Inhalt des Textfiles sollte dann so aussehen:
__________
Username
2007-12-10T22:25:55
Computername
__________
Username
2007-12-10T22:25:57
Computername
__________
Username
2007-12-10T22:25:59
Computername
__________
Username
2007-12-10T22:26:10
Computername
__________
Username
2007-12-10T22:26:20
Computername

Dies tut er aber nicht, der Inhalt des Textfiles sieht so aus:
_ _ _ _ _ _ _ _ _ _ 
 
 u s e r n a m e 
 
 2 0 0 7 - 1 2 - 1 0 T 2 2 : 4 5 : 1 9 
 
 C O M P U T E R 
 
 _ _ _ _ _ _ _ _ _ _ 
 
 u s e r n a m e 
 
 2 0 0 7 - 1 2 - 1 0 T 2 2 : 4 7 : 5 9 
 
 C O M P U T E R 
 

Irgendwie flickt es zwischen jedes Zeichen einen Leerschlag rein....
Kann sich das jemand erklären, rsp. einen Lösungsvorschlag anbieten?

Grüsse aus der Schweiz
TuXHunT3R

PS: Effekt tritt mit Notepad und Wordpad auf......
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 75682

Url: https://administrator.de/forum/powershell-im-logfile-wird-nach-jedem-zeichen-ein-leerschlag-eingefuegt-75682.html

Ausgedruckt am: 19.06.2025 um 13:06 Uhr

58502
58502 10.12.2007 um 23:28:10 Uhr
Goto Top
Das sieht nach Unicode aus. Lade die Datei mal als Unicode und speichere sie als Text (Ansi).
TuXHunt3R
TuXHunt3R 10.12.2007 um 23:43:55 Uhr
Goto Top
Das war es. Ich hab nicht beachtet, dass die PowerShell mit dem out-file CMDLet standardmässig Unicode schreibt. Folgende Codezeilen habe ich angepasst:
"__________" | out-file -filepath \\server\share$\log.txt -append  
$User | out-file -filepath \\server\share$\log.txt -append
$Zeit | out-file -filepath \\server\share$\log.txt -append
$Computer | out-file -filepath \\server\share$\log.txt -append

Diese sehen nun so aus:
"__________" | out-file -filepath \\server\share$\log.txt -encoding Default -append  
$User | out-file -filepath \\server\share$\log.txt -encoding Default -append
$Zeit | out-file -filepath \\server\share$\log.txt -encoding Default -append
$Computer | out-file -filepath \\server\share$\log.txt -encoding Default -append

Durch die Angabe von "-encoding Default" übernimmt das out-file CMDlet den Standard-Zeichensatz des Systems, sprich Ansi.

Herzlichen Dank, das Problem ist hiermit gelöst.