Von einer Variable bei Ausgabe in Datei Zeilenumbrüche behalten
Moin zusammen,
ich habe erst vor kurzem mit PS angefangen und habe u.a. folgendes zusammengebastelt (vermutlich vollkommen umständlich, aber es funktioniert bis auf eine Kleinigkeit)
Stelle ich es einzeln in der PS nach (inkl. Variablen) und lasse mir den Inhalt der Variable $Temp vor der Ausgabe mit Out-File in der Console anzeigen, sehe ich eine Variable mit viele Zeilen, diese sind auch gewollt nur leider kommt in der Datei der Inhalt dieser Variable nur in einer Zeile an.
Wie behalte ich die Zeilenumbrüche bei der Ausgabe.
Danke im Voraus
Gruß
Itchley
ich habe erst vor kurzem mit PS angefangen und habe u.a. folgendes zusammengebastelt (vermutlich vollkommen umständlich, aber es funktioniert bis auf eine Kleinigkeit)
do{ ## __________________________ Switche auslesen
$WalkIP = "$Netzbereich$Start"
cls
write-output $WalkIP
$BeginnSwitch = "Beginn $LfdNr. Switch"
$EndeSwitch = "Ende $LfdNr. Switch"
$SwitchIP_Typ = (get-content C:\Itchley\Switchtyp.txt -TotalCount $LfdNr)[-1]
"$BeginnSwitch" | out-file C:\Itchley\Switchbelegung.txt -append
"$SwitchIP_Typ" | Out-File C:\Itchley\Switchbelegung.txt -append
&$Walk -r:$Netzbereich$Start -v:2c -c:$WalkCommunity -os:$Walk_Ports -op:$Walk_PortsE -t:1 -csv | out-file C:\Itchley\temp.txt
$Temp = Get-Content C:\Itchley\temp.txt
$Temp = $Temp.replace(".1.3.6.1.2.1.17.7.1.2.2.1.2.1.","");$Temp.replace(",Integer,",";")
Remove-Item C:\Itchley\temp.txt
"$Temp" | out-file C:\Itchley\Switchbelegung.txt -append
"$EndeSwitch" | Out-File C:\Itchley\Switchbelegung.txt -append
Remove-Variable -Name Temp
Remove-Variable -Name SwitchIP_Typ
$Start = $Start + 1
$LfdNr = $LfdNr + 1
}until($Ende -lt $Start) ## __________________ Switche auslesen
Stelle ich es einzeln in der PS nach (inkl. Variablen) und lasse mir den Inhalt der Variable $Temp vor der Ausgabe mit Out-File in der Console anzeigen, sehe ich eine Variable mit viele Zeilen, diese sind auch gewollt nur leider kommt in der Datei der Inhalt dieser Variable nur in einer Zeile an.
Wie behalte ich die Zeilenumbrüche bei der Ausgabe.
Danke im Voraus
Gruß
Itchley
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7657828956
Url: https://administrator.de/forum/von-einer-variable-bei-ausgabe-in-datei-zeilenumbrueche-behalten-7657828956.html
Ausgedruckt am: 06.04.2025 um 18:04 Uhr
2 Kommentare
Neuester Kommentar

ich habe erst vor kurzem mit PS angefangen
Man sieht es, vieeerel zu umständlich alles 😉.Stelle ich es einzeln in der PS nach (inkl. Variablen) und lasse mir den Inhalt der Variable $Temp vor der Ausgabe mit Out-File in der Console anzeigen, sehe ich eine Variable mit viele Zeilen, diese sind auch gewollt nur leider kommt in der Datei der Inhalt dieser Variable nur in einer Zeile an.
Wie behalte ich die Zeilenumbrüche bei der Ausgabe.Der Grund dafür ist das du mit Get-Content ein Zeilenarray geliefert bekommst, also ein Array aus Strings.
Du packst nun oben die Array-Variable in Anführungszeichen was bedeutet, dass PowerShell das Array irgendwie in einem String zusammenfassen muss. Hierfür hat es per Default als Join String das Leerzeichen (kann man anpassen indem man die $OFS Variable festlegt). Deswegen sind die Zeilenumbrüche weg.
Damit das nicht passiert lass einfach die Anführungszeichen um die Variable weg die sind hier unnötig und das Array wird automatisch durch Zeilenumbruch getrennt in die Datei geschrieben.
$Temp | out-file C:\Itchley\Switchbelegung.txt -append
$Temp = Get-Content C:\Itchley\temp.txt -Raw
"$($Temp -join "`r`n")"
$OFS = "`r`n"
Zeppel