PowerShell에서 사용자 입력 프롬프트 어떻게 하기

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

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의 기본 기능을 주로 보여줍니다.

출력:

파워셸에서 사용자 입력 요청 - 출력 1

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은 사용자를 위한 보안 데이터를 요청하는 동시에 기밀성과 보안을 보장합니다.

출력:

사용자 입력 프롬프트를 파워셸에서 - 출력 2

매개변수 -AsSecureString은 사용자가 입력하는 문자의 자리에 별표 *를 표시합니다. 이 매개변수를 사용하면 Read-Host의 출력은 System.Security.SecureString 객체가 됩니다.

Read-Host "Enter password" -AsSecureString

이 예시에서 우리는 -AsSecureString 매개변수와 함께 Read-Host를 사용하여 사용자가 안전하게 비밀번호를 입력하도록 요청합니다. 프롬프트 메시지 "Enter password"가 사용자에게 표시됩니다.

사용자가 비밀번호를 입력하면 화면에서 마스킹되어 기밀성이 보장됩니다. 비밀번호는 $password 변수에 안전한 문자열로 저장되어 추가 처리나 검증을 준비합니다.

출력:

파워셸에서 사용자 입력 프롬프트 - 출력 3

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으로 메시지를 출력합니다.

출력:

파워셸에서 사용자 입력 프롬프트 - 출력 4

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 변수에 저장되며, 이를 사용하여 선택된 옵션 레이블을 검색하고 사용자에게 표시합니다.

출력:

파워셸에서 사용자 입력 프롬프트 - 출력 5

결론

PowerShell에서 사용자 입력을 요청하는 것은 상호작용적이고 사용자 친화적인 스크립트를 만드는 데 중요합니다. Read-Host, Mandatory 매개변수 및 PromptForChoice와 같은 방법을 활용하면 스크립트 작성자는 사용자 입력을 효율적으로 수집하면서 신뢰성과 보안을 보장할 수 있습니다.

간단한 텍스트 입력 수집, 필수 매개변수 강제, 또는 사용자에게 구조화된 선택 세트를 제공하는 것과 관계없이 이러한 방법은 스크립트 작성자가 강력하고 다재다능한 자동화 솔루션을 만들 수 있도록 합니다. 이러한 기술을 이해하고 활용함으로써 PowerShell 스크립트 작성자는 스크립트의 사용성과 효과성을 향상시키고 다양한 사용자와 관리자 요구에 부응할 수 있습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website