빠른 링크
Windows PowerShell이란? PowerShell의 기본 이해하기 간단한 PowerShell 스크립트 작성하기 일일 파일 정리 자동화를 위한 PowerShell 스크립트 작성하기 작업 스케줄링 및 실행
당신의 개인 컴퓨터가 일상적인 작업을 스스로 처리할 수 있다면 어떨까요? Windows PowerShell 덕분에 이는 완전히 가능합니다. 제 경험이라면, PowerShell을 활용하여 일반적으로 수동으로 피하는 반복적이고 번거로운 활동들을 자동화합니다.
Windows PowerShell이란?
PowerShell은 윈도우 운영 체제 내에서 통합된 명령 라인 인터페이스와 스크립팅 도구입니다. 관리 작업과 반복적인 작업을 자동화하기 위해 설계되었습니다. 이전에 사용 경험이 있는 사람들은 PowerShell이 이미 직관적일 수 있습니다. 그러나 처음 사용하는 사람들에게는 안심하셔도 됩니다. 이 강력한 도구는 사용자 친화적이며 비교적 쉽게 익힐 수 있습니다.
PowerShell을 활용하면 일상적인 작업을 관리하기 위한 스크립트를 작성할 수 있습니다. 예를 들어 파일을 종류별로 폴더에 분류하거나 비수기 시간에 소프트웨어 업데이트를 시작하고 시스템의 사용 가능한 저장 공간을 모니터링하기 위해 포괄적인 디스크 용량 보고서를 생성할 수 있습니다.
물론 PowerShell은 여기에서 다루지 않은 다양한 기능을 제공합니다. 그러나 이 가이드에서는 기본적인 측면에 초점을 맞추어 핵심 기능들을 철저히 이해하도록 하겠습니다. 또한 간단한 PowerShell 스크립트를 작성하고, 다운로드 폴더 내의 파일을 종류별로 분류하는 흥미로운 프로젝트에 대해 알아보도록 하겠습니다.
PowerShell 기본 이해하기
PowerShell에서 마스터링하려면 다음 기본 요소들을 이해해야 합니다:
Cmdlet은 "커맨드 렛"으로 발음되며, 스크립팅 또는 프로그래밍 환경 내에서 특정 작업을 수행하도록 설계된 단순 명령어입니다. 예를 들어 Get-Date
명령어는 현재 날짜와 시간 정보(일, 월, 년도 및 시)를 가져옵니다.
⭐ 스크립팅과 파이프라인: PowerShell 스크립트는 파이프 오퍼레이터(|)를 통해 연결된 명령어들의 집합입니다. 이로 인해 한 명령어의 출력이 다음 명령어의 입력으로 사용될 수 있습니다. 예를 들어 CPU 사용량을 기준으로 프로세스 목록을 정렬하려면 다음과 같은 명령어를 실행합니다: powershell Get-Process | Sort-Object -Property CPU
이는 PowerShell 스크립트가 효율적인 데이터 조작과 자동화를 가능하게 함을 보여줍니다.
⭐ PowerShell은 단순 텍스트 출력이 아닌 객체를 생성하여 더 복잡한 데이터 조작을 용이하게 합니다. 예를 들어 현재 날짜와 시간을 구조화된 객체로 반환하는 명령어는 다음과 같습니다: powershell (Get-Date).ToString("o")
이는 ISO 8601 형식으로 현재 날짜와 시간을 가져오는데, 일관성 있고 기계 판독 가능한 데이터 처리에 매우 유용합니다.
⭐ 출력을 효과적으로 정제하고 포맷하려면 Where-Object
를 필터링 조건으로 사용하고 Format-Table
또는 Format-List
를 사용하여 표시 형식을 맞춤화할 수 있습니다. 예를 들어 다운로드 폴더 내에서 50MB 이상의 파일을 찾고 이름과 크기를 테이블 형식으로 출력하려면 다음과 같은 명령어를 실행합니다: powershell Get-ChildItem -Path "C:\\Users\\<yourusername>\\Downloads" -File | Where-Object { $\_.Length -gt 50MB } | Format-Table Name, Length
<yourusername>
을 실제 사용자 이름으로 변경하여 경로를 정확히 지정합니다.
몇 가지 중요한 PowerShell cmdlet들이 있습니다: Get-Help
는 주어진 cmdlet의 기능에 대한 정보를 얻는데 유용하며, Get-Command
은 사용 가능한 모든 명령어 목록을 제공하고, Get-ChildItem
은 파일과 디렉토리를 탐색하는 데 도움이 됩니다.
우리는 기본 PowerShell 명령어와 Windows PowerShell 스크립팅에 대한 포괄적인 가이드를 통해 개별 명령어와 기본 스크립팅 원칙을 더 잘 이해하도록 권장합니다. 이 자원은 초보적 지식을 넘어서서 PowerShell의 광범위한 기능들을 깊게 탐구할 수 있도록 돕습니다.
간단한 PowerShell 스크립트 작성하기
PowerShell은 파일을 복사, 이동 및 삭제하는 등의 작업을 자동화하거나 여러 개의 파일 이름을 일괄적으로 변경하거나 애플리케이션 실행을 자동화할 수 있는 능력을 제공합니다. 이제 몇 가지 기본 Windows PowerShell 스크립트를 작성하여 그 기능을 실제에서 보여드리겠습니다.
스크립트를 실행하려고 할 때 실행 정책 관련 오류가 발생하면, 임시로 정책을 변경하여 스크립트 실행을 허용해야 할 수 있습니다. 이를 위해 다음 명령어를 실행합니다: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.
폴더 내 파일 일괄 이름 변경하기
PowerShell은 컴퓨터에서 파일을 관리하는 데 유연한 방법을 제공하며, 복사, 이동 및 삭제 등을 포함합니다. 또한 특정 종류의 파일에 대해 일괄적으로 이름을 바꿀 수 있습니다. 예를 들어 여러 텍스트 파일의 접두어 "oldco"를 "newco"로 변경하여 이러한 파일들을 일괄적으로 이름을 바꿀 수 있습니다.
위에서 제공된 스크립트에서는 ".txt"가 파일 확장자 필터 역할을 합니다. 이를 다른 확장자(예: .jpg 또는 .docx)로 변경하면 다양한 종류의 파일을 찾는 데 사용할 수 있습니다.
애플리케이션 실행 자동화하기
매일 동일한 애플리케이션 세트를 시작해야 한다면, PowerShell 스크립트를 작성하여 단일 명령어로 그들을 실행하도록 하는 것이 좋습니다.
스크립트 내용을 노트패드 문서에 복사하고 "LaunchFavoriteApps.ps1"이라는 이름으로 저장합니다. 그런 다음 이 파일을 더블 클릭하면 스크립트 내에서 지정된 애플리케이션들이 실행됩니다.
중요한 파일 백업 위치로 복제하기
필요한 중요한 파일들을 정기적으로 특정 백업 위치에 아카이브화하려면 다음 스크립트를 사용할 수 있습니다. 소스와 목적지 디렉토리를 자신의 요구사항에 맞게 조정해야 합니다.
일일 파일 조직 자동화를 위한 PowerShell 스크립트 작성하기
매일 다운로드되는 다양한 종류의 문서들로 인해 Downloads 폴더가 혼란스럽고 정리되지 않은 상태라면, PowerShell 스크립트를 작성하여 각 종류별로 분류하고 정렬하는 것이 좋습니다.
노트패드에서 새 문서를 생성하고 제공된 스크립트 내용을 삽입합니다. 그런 다음 스크립트 내의 소스 디렉토리 경로를 자신의 Downloads 폴더 위치에 맞게 수정해야 합니다.
파일을 저장하려면 "File" 메뉴에서 "Save As"를 선택하고, 파일 이름으로 "OrganizeDownloadsFolder.ps1"을 지정합니다. 그런 다음 "Save as Type" 드롭다운 목록에서 "All Files"를 선택합니다. 스크립트 실행은 단순히 "OrganizeDownloadsFolder.ps1" 파일을 더블 클릭하면 됩니다.
작업 스케줄링 및 실행
스크립트 작성은 자동화 과정의 한 측면일 뿐입니다. 다음으로 환경을 구성하여 스크립트가 독립적으로 실행되도록 설정해야 합니다. 이는 일일 기준 또는 특정 요구사항에 따라 작업 스케줄링을 설정함으로써 가능합니다.
PowerShell을 시작하고 제공된 스크립트를 터미널 창에 붙여넣습니다. 붙여넣은 후 엔터를 누르면 실행됩니다. ‘J:\OrganizeDownloadsFolder.ps1’ 대신 로컬 인스턴스의 OrganizeDownloadsFolder.ps1 스크립트 전체 경로를 입력해야 합니다.
스크립트가 일일 기준으로 파일 정리 스크립트를 실행하도록 작업 스케줄러 내에서 예약된 작업을 구성합니다. 5시에 실행되도록 설정됩니다. 다른 실행 시간이 필요하다면 위의 스크립트 내에서 조정할 수 있습니다.
PowerShell은 일상적인 작업들을 자동화하는 다양한 기능을 제공합니다. 예를 들어, 주요 드라이브의 사용 가능한 저장 공간이 부족해질 때 알림을 보내는 디스크 공간 모니터링 스크립트 작성; PDF 문서를 대량으로 암호 보호; 그리고 이미지 폴더에서 동적으로 데스크톱 배경화면 적용 등을 할 수 있습니다.