PowerShell에서 사용자 입력 프롬프트 어떻게 하기
-
PowerShell에서 사용자 입력을 요청하기 위해
Read-Host
사용하기 -
PowerShell에서 사용자 입력을 요청하기 위해
Mandatory
매개변수 사용하기 -
PowerShell에서 사용자 입력을 요청하기 위해
PromptForChoice
사용하기 - 결론

PowerShell 스크립팅에서 사용자와 상호작용하여 입력을 수집하는 것은 일반적인 요구사항입니다. 사용자화, 의사결정 또는 탐색을 위해 사용자에게 입력을 요청하는 것은 필수적입니다.
이 기사에서는 Read-Host
방법, Mandatory
매개변수 방법 및 PromptForChoice
방법을 포함하여 PowerShell에서 사용자 입력을 요청하는 다양한 방법을 탐구합니다. 각 방법은 고유한 기능을 제공하며, 다양한 시나리오에 적합하여 PowerShell 스크립트의 상호작용성과 사용성을 향상시킵니다.
PowerShell에서 사용자 입력을 요청하기 위해 Read-Host
사용하기
Read-Host
cmdlet은 사용자 입력을 요청하고 콘솔에서 한 줄의 입력을 읽습니다. Read-Host
는 사용자로부터 1022
자의 입력만 허용할 수 있습니다.
-Prompt
매개변수는 입력할 정보에 대해 텍스트를 지정하는 데 사용됩니다. 입력한 텍스트에 콜론 :
를 추가합니다.
예시:
Read-Host -Prompt "Enter your name"
이 예시에서 Read-Host
을 사용할 때, 사용자에게 "Enter your name"
이라는 메시지를 표시하고 입력을 기다리면서 스크립트 실행이 일시 중지됩니다. 사용자가 이름을 입력하고 Enter를 누르면 스크립트가 계속 실행됩니다.
그러나 입력을 변수에 저장하거나 입력받은 내용을 기반으로 후속 작업을 수행하지 않기 때문에 이 예시는 사용자의 입력을 추가 처리 없이 Read-Host
의 기본 기능을 주로 보여줍니다.
출력:
Read-Host
는 실행을 일시 중지하고 입력을 받습니다. 사용자가 프롬프트에서 값을 입력하면 동일한 값을 반환합니다.
PowerShell 파이프라인에서 입력을 허용하지 않습니다. 또 다른 예시가 있습니다:
$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"
이 예시에서 우리는 Read-Host
를 사용하여 사용자에게 이름을 입력하도록 요청합니다. 문자열 "Enter your name"
이 프롬프트 메시지 역할을 합니다.
사용자의 입력은 $name
변수에 저장됩니다. 그런 다음 Write-Output
을 사용하여 사용자가 입력한 값을 포함한 개인화된 인사 메시지를 표시합니다.
Read-Host
cmdlet을 사용하면 입력을 보안 문자열로 저장할 수 있어 비밀번호와 같은 민감한 정보를 수집하는 데 매우 유용한 도구입니다. 이 cmdlet은 사용자를 위한 보안 데이터를 요청하는 동시에 기밀성과 보안을 보장합니다.
출력:
매개변수 -AsSecureString
은 사용자가 입력하는 문자의 자리에 별표 *
를 표시합니다. 이 매개변수를 사용하면 Read-Host
의 출력은 System.Security.SecureString
객체가 됩니다.
Read-Host "Enter password" -AsSecureString
이 예시에서 우리는 -AsSecureString
매개변수와 함께 Read-Host
를 사용하여 사용자가 안전하게 비밀번호를 입력하도록 요청합니다. 프롬프트 메시지 "Enter password"
가 사용자에게 표시됩니다.
사용자가 비밀번호를 입력하면 화면에서 마스킹되어 기밀성이 보장됩니다. 비밀번호는 $password
변수에 안전한 문자열로 저장되어 추가 처리나 검증을 준비합니다.
출력:
PowerShell에서 사용자 입력을 요청하기 위해 Mandatory
매개변수 사용하기
PowerShell에서 Mandatory
매개변수 방법은 스크립트 실행에 반드시 필요한 특정 매개변수를 사용자가 입력하도록 요청하는 강력한 방법입니다. 매개변수를 Mandatory
로 표시함으로써 스크립트 작성자는 필수 입력값 제공을 강제할 수 있어 스크립트의 신뢰성과 사용성을 높입니다.
다음은 실행 시 사용자 입력을 요청하는 함수 Name
의 예입니다.
예시:
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
Name
이 예시에서 우리는 name
이라는 단일 매개변수를 가진 PowerShell 함수를 Name
으로 정의합니다. [Parameter(Mandatory)]
를 지정함으로써 사용자가 함수를 호출할 때 name
매개변수에 대한 값을 반드시 제공해야 함을 보장합니다.
그런 다음 함수는 제공된 이름을 사용하여 Write-Output
으로 메시지를 출력합니다.
출력:
PowerShell에서 사용자 입력을 요청하기 위해 PromptForChoice
사용하기
PowerShell에서 PromptForChoice
방법은 사용자에게 일련의 옵션을 가지고 구조적으로 요청하고 그들의 선택을 입력으로 받는 방법을 제공합니다. 이 방법은 사용자에게 메뉴나 선택 목록을 제공할 때 특히 유용하여 보다 상호작용적이고 사용자 친화적인 스크립트 실행 경험을 가능하게 합니다.
예시:
$choicePrompt = "Choose an option:"
$choices = [System.Management.Automation.Host.ChoiceDescription[]]@(
"&Option 1",
"&Option 2",
"&Option 3"
)
$defaultChoice = 0
$result = $host.UI.PromptForChoice("Title", $choicePrompt, $choices, $defaultChoice)
Write-Output "You selected $($choices[$result].Label)"
이 예시에서 우리는 프롬프트 메시지와 선택 옵션 배열을 정의하고 기본 선택 인덱스를 지정합니다. 그런 다음 PromptForChoice
방법을 사용하여 제공된 선택肜로 프롬프트 대화 상자를 표시합니다.
사용자의 선택은 $result
변수에 저장되며, 이를 사용하여 선택된 옵션 레이블을 검색하고 사용자에게 표시합니다.
출력:
결론
PowerShell에서 사용자 입력을 요청하는 것은 상호작용적이고 사용자 친화적인 스크립트를 만드는 데 중요합니다. Read-Host
, Mandatory
매개변수 및 PromptForChoice
와 같은 방법을 활용하면 스크립트 작성자는 사용자 입력을 효율적으로 수집하면서 신뢰성과 보안을 보장할 수 있습니다.
간단한 텍스트 입력 수집, 필수 매개변수 강제, 또는 사용자에게 구조화된 선택 세트를 제공하는 것과 관계없이 이러한 방법은 스크립트 작성자가 강력하고 다재다능한 자동화 솔루션을 만들 수 있도록 합니다. 이러한 기술을 이해하고 활용함으로써 PowerShell 스크립트 작성자는 스크립트의 사용성과 효과성을 향상시키고 다양한 사용자와 관리자 요구에 부응할 수 있습니다.