Set-Content는 저는 없으면 안되는 핵심 PowerShell cmdlet 중 하나입니다. PowerShell을 사용하여 파일에 쓸 수 있기 전에 VBscript를 사용했던 것을 아직도 기억합니다. 어떤 종류의 개체를 사용해야 하는지와 메서드 이름을 항상 기억하려고 했습니다. FileSystemObject, FileObject, 뭐였더라? 정말 골치 아팠습니다! 심지어 메서드 이름을 CreateTextFile()로 기억했어도 두 번째 인수로 True를 추가하는 것을 항상 잊어버렸습니다.
다음은 그 괴물같은 VBScript 예제입니다.
그 VBScript를 이 PowerShell과 비교해 보세요:
Set-Content -Path 'C:\file.txt' -Value 'test string'
어떤 것을 선호하시나요? 저는 PowerShell 방식을 선택하겠습니다! PowerShell 방식은 Set-Content라는 하나의 cmdlet을 사용합니다. 이 cmdlet을 사용하면 PowerShell을 사용하여 파일에 쉽게 쓸 수 있습니다. 이 PowerShell cmdlet은 파일에 쓰기라는 하나의 목적을 가지고 있습니다.
이 동작을 약간 변경하기 위해 몇 가지 매개변수가 있을 수는 있지만, 파일에 쓰기에만 전념하고 있습니다. 하지만 비슷한 개념인 Add-Content와 혼동되지 않아야 합니다. Set-Content는 파일 전체를 덮어쓰는 반면, Add-Content는 파일에 추가합니다. 처음 시작했을 때 여러 차례 어렵게 배운 것 중 하나입니다!
파일 생성/파일 덮어쓰기
Set-Content cmdlet은 상당히 간단합니다. 아래에 좋은 예제가 있습니다. 이 예제는 Set-Content가 파일이 존재하지 않으면 파일을 만들거나 기존 파일의 내용을 모두 바꿀 수 있음을 보여줍니다.
파일로 출력
하나의 파일로 출력할 수 있는 명령어 중 하나는 Out-File
입니다. 하지만 Set-Content
는 조금 다르게 작동하지만 동일한 작업을 수행할 수 있습니다.
아마도 하나의 텍스트 파일에서 특정 텍스트 조각을 추출하여 다른 파일에 행을 출력하고 싶을 것입니다. Get-Content
와 Set-Content
를 사용하여 이를 수행할 수 있습니다. 아마도 각 서버와 해당 서버의 상태가 각 행에 있는 텍스트 파일이 있다고 가정해 봅시다. 각 서버의 상태를 읽고 파일로 출력하고 싶습니다. 파일을 읽기 위해 Get-Content
를 사용하고 파일로 쓰기 위해 Set-Content
를 사용하면 가능합니다.
Set-Content
는 계속해서 사용되는 중요한 명령어 중 하나입니다. 화려하지는 않지만 항상 작동하며 PowerShell 마법 상자에 가지고 있어야 할 명령어 중 하나입니다.
자세한 내용은 Set-Content Microsoft 문서를 확인하세요.
Source:
https://adamtheautomator.com/powershell-write-to-file/