새 줄에 대한 powershell 분할 문제

새 줄에 대한 powershell 분할 문제

새 줄을 기반으로 Powershell에서 txt 문서를 분할하려고 합니다. 스크립트는 ''로 분할할 때 제대로 작동했지만 이제 [Environment]::NewLine을 사용하도록 변경했는데 마지막 줄만 선택하는 것 같습니다.

다음은 개행 문자로 분할되어야 하는 스크립트 부분입니다.

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

.txt 문서는 다음과 같습니다.

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

새 줄에서 분할하고 마지막 줄만 볼 수 있는 방법에 대한 아이디어가 있습니까? 아니면 뭔가 빠졌습니까?

답변1

당신을 위한 3가지 방법이 있어요

.txt 파일을 준비했어요

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

이제 3가지 방법이 있습니다

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

결과는 이렇습니다

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

답변2

아무것도 할 필요가 없습니다. 텍스트 파일에 대한 Get-Content의 기본 동작은 새 줄에서 분할하고 문자열 배열을 반환하는 것입니다.

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

관련 정보