Problema con la división de PowerShell para New Line

Problema con la división de PowerShell para New Line

Estoy intentando dividir un documento de texto en Powershell basado en una nueva línea. El script funcionó bien al dividir en un ',' pero ahora lo cambié para usar [Environment]::NewLine y parece que solo selecciona la última línea.

Esta es la parte del script que debería dividirse mediante una nueva línea:

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

El documento .txt se ve así:

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

¿Alguna idea sobre cómo puedo dividirlo en la Nueva línea y no solo ver la última línea o me falta algo?

Respuesta1

Tengo 3 métodos para ti.

He preparado un archivo .txt

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

Y ahora 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)

el resultado es asi

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

Respuesta2

No necesitas hacer nada. El comportamiento predeterminado de Get-Content con un archivo de texto es dividir en la nueva línea y devolver una matriz de cadenas:

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

información relacionada