본문 바로가기
파워쉘(Powershell)/파일,폴더

파워쉘 - 파일 생성, 읽기, 쓰기

by 예배파 2024. 4. 4.

 

파일 만들기 

 

New-Item

파일, 폴더 만들때 사용

# 새 파일 생성
New-Item -Path “C:\Files\text1.txt" -ItemType File       


# 새 폴더 생성
New-Item -Path "C:\Files\New_Folder" -ItemType Directory


#같은 이름의 파일이 존재하면 지우고 새 파일 생성
New-Item -Path “C:\Files\text1.txt" -ItemType File -Force

 

 

 

파일이 존재하지 않을 때만 파일 만들기

if(-Not (Test-Path -Path “C:\Files\text1.txt")){
    New-Item -Path “C:\Files\text1.txt"
}

 

 

 

 

파일 읽기

 

Get-Content

읽은 파일의 내용을 배열의 형태로 저장

$computers = Get-Content -Path .\computers.txt
ForEach($com in $computers){
    Write-host $com
}

 

 

 

두 개 이상의 파일 내용 읽기

배열에 파일 이름을 저장해서  사용

$files = 'computers.txt','computers-1.txt'

$computers = Get-Content -Path $files
ForEach($com in $computers){
    Write-host $com
}

 

 

 

파일의 첫 줄,  마지막 줄 제외하고 읽기

Get-Content -Path .\computers.txt | Select-Object -Skip 1 | Select-Object -Skip

 

 

 

파일의 마지막에 줄바꿈  제외하고 읽기 

아래의 그림과 같이 텍스트 파일에 줄바꿈 문자들이 있는 경우, Get-Content가 파일을 읽고 배열을 만들때

줄바꿈 문자들 하나 하나 배열의 값에 저장이 됩니다

For-Each로 배열 작업을 할 때, 빈 값이 저장되어 있어서 문제가 생기는 경우가 있습니다

이럴때는 텍스트 파일을 줄바꿈 문자가 없게 만들어 저장을 하거나, 스크립트 내에서 처리 하면 됩니다

 

$file_content = Get-Content -Path .\File_1.txt | Where-Object {$_.trim() -ne "" }

 

 

 

파일쓰기

 

Out-File

파일을 생성하고, 값을 입력 

같은 이름의 파일이 존재하면 파일을 지우고 새로 생성 

-append 를 사용하면,  이미 있는 파일에 값을 추가로 입력

#문자열 파일에 쓰기
"test" | Out-File .\t.txt


#문자열 변수를 사용해서 파일에 쓰기
$s = "test1" 
$s | Out-File .\t.txt


#파이프를 사용하지 않고 -InputObject를 사용해서 파일에 쓰기
$s1 = "test2"
Out-File -FilePath .\t.txt -InputObject $s1


#기존 있는 파일을 지우지 않고 내용 추가
Out-File -FilePath .\t.txt -InputObject $str -Append

 

 

Set-Content

파일을 생성하고 내용 입력. 
Out-File 과 비슷하지만 -append 가 없어서 기존 파일이 존재하면 지우고 새로 파일을 생성

Set-Content -Path .\t.txt -Value "test"

 

 

Add-Content
기존에 있는 파일에 값을 추가 시킬때 사용

Add-Content -Path .\t.txt -Value "Hi"

 

 

 

 

리다이렉션 사용해서 파일 만들기

 

> : 파일을 새로 생성하고 파일에 내용 넣기
>> : 기존 파일이 있을 경우 파일을 지우지 않고, 기존 파일 내용에 추가 

#파일 생성
"Hello" > .\rediection_test.txt

#기존 redirection_test.txt 파일을 지우고 다시 생성후 Hi 추가
"Hi" > .\rediection_test.txt

#redirection_test.txt파일에 내용 추가
"How are you?" >> .\rediection_test.txt



실행결과
rediection_test.txt 내용

Hi
How are you?

'파워쉘(Powershell) > 파일,폴더' 카테고리의 다른 글

파워쉘-엑셀파일 읽기  (0) 2024.04.22
파워쉘 - 엑셀(Excel)에 쓰기  (2) 2024.04.19
파워쉘 - 파일 이름 변경 및 지우기  (0) 2024.04.02
파일, 폴더 목록  (0) 2024.03.07