PowerShell: 텍스트 파일 내용 전체를 변수에 저장
PowerShell을 사용하여 텍스트 파일의 전체 내용(존재하거나 존재하지 않을 수 있는 후행 공백 행 포함)을 변수에 저장하려고 합니다.텍스트 파일의 총 줄수도 알고 싶습니다.가장 효율적인 방법은 무엇입니까?
참고로 PowerShell 3.0에서는Get-Content
새 Raw 스위치를 사용한 cmdlet:
$text = Get-Content .\file.txt -Raw
파일의 전체 내용을 가져오려면:
$content = [IO.File]::ReadAllText(".\test.txt")
줄 수:
([IO.File]::ReadAllLines(".\test.txt")).length
또는
(gc .\test.ps1).length
후행의 빈 행을 포함시키는 것은 다소 해킹적입니다.
[io.file]::ReadAllText(".\desktop\git-python\test.ps1").split("`n").count
Powershell 2.0:
$text = Get-Content $filePath | Out-String
그IO.File.ReadAllText
상대 패스로는 동작하지 않습니다.파일을 검색합니다.%USERPROFILE%\$filePath
현재 디렉토리 대신(Powershell ISE에서 적어도 실행 중인 경우):
$text = [IO.File]::ReadAllText($filePath)
Powershell 3+:
$text = Get-Content $filePath -Raw
파일을 읽기 위한 또 하나의 접근법은 변수 표기법 또는 변수 구문이라고 불리며, 단순히 filespec 뒤에 달러 기호를 붙이는 곱슬머리 괄호 안에 wit를 넣는 것입니다.
$content = ${C:file.txt}
이 표기법은 L값 또는 R값으로 사용할 수 있습니다.따라서 다음과 같은 방법으로 파일에 쉽게 쓸 수 있습니다.
${D:\path\to\file.txt} = $content
또 다른 편리한 사용법은 임시 파일이나 하위 표현식 없이 파일을 수정할 수 있다는 것입니다. 예를 들어 다음과 같습니다.
${C:file.txt} = ${C:file.txt} | select -skip 1
나는 처음에 이 표기법에 매료되었다. 왜냐하면 이 표기법에 대한 어떤 것도 알아내는 것이 매우 어려웠기 때문이다!PowerShell 2.0 사양에서도 한 줄만 사용할 수 있으며 사용 설명이나 자세한 내용은 일절 기재되어 있지 않습니다.그 후 PowerShell 변수에 대한 이 블로그 엔트리를 발견했는데, 이는 몇 가지 유용한 정보를 제공합니다.
이 사용법에 대한 마지막 메모는 드라이브 명칭을 사용해야 한다는 것입니다.${drive:filespec}
위의 모든 예에서와 같이.드라이브 없음(예:${file.txt}
)는 동작하지 않습니다.해당 드라이브의 filespec에 대한 제한은 없습니다. 절대 또는 상대일 수 있습니다.
Get-Content는 데이터를 가져와 한 줄씩 배열에 덤프합니다.목록에 기재되어 있는 것 외에 특별한 요건이 없는 경우, 컨텐츠는 변수에 저장할 수 있습니다.
$file = Get-Content c:\file\whatever.txt
그냥 실행$file
전체 내용이 반환됩니다.그럼 그냥 하면 되겠네$file.Count
(어레이에는 이미 카운트 방식이 내장되어 있기 때문에) 행의 합계수를 취득합니다.
이게 도움이 됐으면 좋겠네요!저는 대본에 능한 사람은 아니지만, 위의 많은 것들보다 이게 더 쉬울 것 같아요.
이진 파일 읽기:
이는 요청하신 내용과 정확히 일치하지는 않지만, 일부에서는 사용 사례에 유용하다고 생각할 수 있습니다. Get-Content -Raw
이 string
byte[]
:
Get-Content c:\file.bin -Encoding Byte -ReadCount 0
-Read-Count
는 한 번에 파이프라인을 통과하는 회선의 수(기본값은 1)를 나타냅니다.또한 0은 1개의 조작으로 모든 작업을 수행하므로 퍼포먼스가 향상됩니다.
크레딧은 이 솔루션을 발표한 Shay Levy에게 돌아간다(여기서 Shay의 투고를 참조).
언급URL : https://stackoverflow.com/questions/7976646/powershell-store-entire-text-file-contents-in-variable
'code' 카테고리의 다른 글
애니메이션으로 UIView 숨김/표시 (0) | 2023.04.13 |
---|---|
SQL Server Express의 제한 사항 (0) | 2023.04.13 |
HTML: 유효한 ID 속성 값입니까? (0) | 2023.04.08 |
SQL Server 트랜잭션 로그를 지우려면 어떻게 해야 합니까? (0) | 2023.04.08 |
빌드 후 이벤트 실행 PowerShell (0) | 2023.04.08 |