Problema com divisão do PowerShell para New Line

Problema com divisão do PowerShell para New Line

Estou tentando dividir um documento txt no Powershell com base em uma nova linha. O script funcionou bem ao dividir em um ',' mas agora eu mudei para usar [Environment]::NewLine parece estar apenas escolhendo a última linha.

Esta é a parte do script que deve ser dividida por nova linha:

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

O documento .txt tem a seguinte aparência:

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

Alguma idéia de como posso dividi-lo na New Line e não apenas ver a última linha ou estou faltando alguma coisa?

Responder1

Eu tenho 3 métodos para você

Eu preparei um arquivo .txt

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

E agora 3 métodos

(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)

o resultado é assim

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

Responder2

Você não precisa fazer nada. O comportamento padrão de Get-Content com um arquivo de texto é dividir na nova linha e retornar uma matriz de strings:

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
----             ----------            ----------
...

informação relacionada