Problem mit der Powershell-Aufteilung für New Line

Problem mit der Powershell-Aufteilung für New Line

Ich versuche, ein TXT-Dokument in Powershell basierend auf einer neuen Zeile aufzuteilen. Das Skript funktionierte einwandfrei, als es anhand eines ',' aufgeteilt wurde. Nachdem ich es jedoch geändert habe, um [Environment]::NewLine zu verwenden, scheint es nur die letzte Zeile aufzunehmen.

Dies ist der Teil des Skripts, der durch Zeilenumbruch aufgeteilt werden sollte:

 Get-Content  C:\Bindings.txt | Foreach-Object{
 $hostHeaders = $_.Split([Environment]::NewLine,
 [StringSplitOptions]::RemoveEmptyEntries)
 }

Das TXT-Dokument sieht folgendermaßen aus:

http:*:80:test.com 
http:*:80:test2.com 
http:*:80:test1.com

Irgendwelche Ideen, wie ich es in der neuen Zeile aufteilen kann und nicht nur die letzte Zeile angezeigt bekomme, oder übersehe ich etwas?

Antwort1

Ich habe 3 Methoden für Sie

Ich habe eine TXT-Datei vorbereitet

(Get-Content  C:\temp\Bindings.txt)
http:*:80:test.com 
http:*:80:test2.com 
http:*:80:test1.com

Und jetzt 3 Methoden

(Get-Content  C:\temp\Bindings.txt) -split"`r`n"
(Get-Content  C:\temp\Bindings.txt) -split "[Environment]::NewLine"
(Get-Content  C:\temp\Bindings.txt).Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries)

das Ergebnis ist so

http:*:80:test.com 
http:*:80:test2.com 
http:*:80:test1.com

Antwort2

Sie müssen nichts tun. Das Standardverhalten von Get-Content bei einer Textdatei besteht darin, in der neuen Zeile zu teilen und ein Array von Zeichenfolgen zurückzugeben:

PS C:\...\Can Delete 3>Get-Content data.txt
http:*:80:test.com
http:*:80:test2.com
http:*:80:test1.com
PS C:\...\Can Delete 3>$object = Get-Content data.txt
PS C:\...\Can Delete 3>$object.GetType()                                                  
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array


PS C:\...\Can Delete 3>$object.count
3
PS C:\...\Can Delete 3>$object[0]
http:*:80:test.com
PS C:\...\Can Delete 3>$Object | Get-Member                                               

   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
...

verwandte Informationen