Powershell 스크립트 PS1 기초

오늘은 파워쉘의 스크립트인 PS1에 대해서 알아보겠습니다.

PS1

파워쉘 스크립트는 하나 이상의 PowerShell 명령을 포함하는 일반 텍스트 파일입니다.

PowerShell 스크립트에는 .ps1파일 확장자가 있습니다.

스크립트 실행은 cmdlet 실행과 매우 유사한데요.

스크립트의 경로와 파일 이름을 입력하고 매개변수를 사용하여 데이터를 제출하고

옵션을 설정합니다. 컴퓨터 또는 다른 컴퓨터의 원격 세션에서 스크립트를 실행할 수 있습니다.

PS1 기본 명령어들

파워쉘에서 여러가지를 사용할 수 있는데요.

먼저 입력값을 가져오는 것은 read-host입니다.

cmdlet Read-Host은 콘솔(stdin)에서 사용자에게 입력을 요청하는 데 사용할 수 있습니다.

입력을 보안 문자열로 저장할 수 있으므로 이 cmdlet을 사용하여 다양하게 활용 가능한데요.

Read-Host사용자의 입력으로 허용할 수 있는 1022자로 제한됩니다.

$Age = Read-Host “Please enter your age”

그리고 이를 CSV파일과 비교할 수 있는데요.

아래의 자습서의 데이터를 활용할 수 있습니다.

기본은 import-csv 뒤에 주소를 넣으면 되구요. -encoding 옵션을 줄 수 있습니다.

Get-Process | Export-Csv -Path .\Processes.csv
$P = Import-Csv -Path .\Processes.csv
$P | Get-Member

TypeName: System.Management.Automation.PSCustomObject

Name                       MemberType   Definition
----                       ----------   ----------
Equals                     Method       bool Equals(System.Object obj)
GetHashCode                Method       int GetHashCode()
...

$P | Format-Table

Name                   SI Handles VM            WS        PM        NPM    Path
----                   -- ------- --            --        --        ---    ----
ApplicationFrameHost   4  407     2199293489152 15884288  15151104  23792  C:\WINDOWS\system32\ApplicationFrameHost.exe
...
wininit                0  157     2199112204288 4591616   1630208   10376
winlogon               4  233     2199125549056 7659520   2826240   10992  C:\WINDOWS\System32\WinLogon.exe

그리고 where-object를 사용할 수 잇는데요.

아래처럼 id를 value라는 변수에 불러와서 이 ID의 값만 불러오는 것을 할 수 있습니다.

그리고 Format-Table로 하면 결과를 테이블로 볼 수 있습니다.

$value = Read-Host "Input id"
$products = Import-Csv $folder1\test.csv -Encoding UTF8 | where-object id -eq $value 

이 곳에서 Where-object가 있는데요.

자동 $_변수는 cmdlet에 전달되는 각 개체를 나타냅니다.

첫 번째 명령은 스크립트 블록 형식을 사용하고 두 번째 명령은 비교 문 형식을 사용하는 것입니다.

명령은 동일한 방식으로 서비스를 필터링하고 동일한 출력을 반환합니다. 구문만 다릅니다.

원하는 방식으로 사용하시면 됩니다.
Get-Service | Where-Object { $_.Status -eq “Stopped” }
Get-Service | where Status -eq “Stopped”

아래의 파워셀 자습서에서 보다 자세한 내용을 알 수 있습니다.

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/where-object?view=powershell-7.3

결과는 아래와 같이 표현할 수 있습니다.

현재 위치는 $folder1 = Get-Location

Get-location을 통해서 위치를 알 수 있는데요.

243908150 1689e845 3c0c 4eb0 8ebc dbb18d4ec132

사실 마이크로소프트가 워낙 자습서를 잘 만들어줘서, 영어만 어느정도 된다면

파워셀 스크립트 작성을 편리하게 할 수 있습니다.

이러한 조합을 잘 활용하시면 편리한 파워쉘 스크립트를 작성하실 수 있습니다.

그럼 잘 사용하시기 바랍니다.

파트너스 활동으로 일정액의 수수료 등을 받을 수 있습니다.

Leave a Comment