[Powershell]Zeilen in Datei schreiben / anhängen


MrCastle

Mitglied
Hi Community,

eigentlich sollte das Problem ja relativ einfach zu lösen sein, denn mittels

Code:
"Hier String eingeben" | out-file "C:\datei.txt" -append

Müsste eigentlich der vornestehende String an eine Datei angehängt werden, was aber in meinem Fall scheinbar nicht funktionieren will, denn es wird bei jeder neuen Zeile immer nur die eigentliche Zeile ersetzt. Es scheint also als würde der Parameter ignoriert werden, ohne das -append passiert aber garnichts in der Datei.

Wenn ich es mit
Code:
Add-Content "C:\datei.txt" "Text"
probiere passiert das gleiche, allerdings in japanischen und indischen Schriftzeichen, was aber wohl irgendwo an der Kodierung liegt.

Ein möglicher Grund für das Verhalten würde mir einfallen, denn die Aufrufe von "out-file" geschehen nicht ein einem Skript, sondern das Skript wird mehrmals hintereinander aufgerufen, was sich durch den Workflow, in dem das Skript aufgerufen wird, nicht verhindern lässt.

Kennt ihr eine Möglichkeit das zu umgehen oder gibt es evtl. eine Alternative?
Vielen Dank im Voraus.

Gruß
MrCastle
 
Zuletzt bearbeitet:

KaiBone

Mitglied
Hallo,
wenn du mehrere Zeilen in einem Script in einer Datei schreiben willst bietet es sich doch an dieser erst alle in einen String zuschreiben und dann am Ende in die Datei zu überführen.
Code:
$text = "Hallo `n"
$text += "Welt "
Wenn du eine Zeilenumbruch erzwingen willst musst du das `n verwenden wichtig ist hierbei das es in "" steht und nicht in ''.
Das += bedeutet nur das die der Text an den String an gehangen wird. Am Ende kannst du das ganze dann mit Add-Content oder Set-Content in die Datei schreiben.

Gruß
KaiBone
 

rd4eva

Erfahrenes Mitglied
Es gibt noch den >> Operator der die Ausgabe eines Befehls in eine Datei umleitet und anhängt.
Sprich :
Code:
"Hallo Welt" >> foobar.txt

Das dumme daran ist das dabei jedesmal eine neue Zeile begonnen wird bzw. eben jeden Zeile mit {CR}{LF} endet.
 

Neue Beiträge