PowerShell에서 프롬프트 확인하는 방법

  1. PowerShell에서 확인 프롬프트를 위한 -Confirm 스위치 사용
  2. PowerShell에서 확인 프롬프트를 위한 if 문 사용
  3. PowerShell에서 확인 프롬프트를 위한 PromptForChoice() 메서드 사용
  4. PowerShell에서 확인 프롬프트를 위한 함수 기반 접근법 사용
  5. 결론
PowerShell에서 프롬프트 확인하는 방법

확인 프롬프트의 일반적인 아이디어는 서로 다른 작업 사이를 전환할 수 있는 옵션을 만드는 것입니다. 예를 들어 사용자가 를 선택하면 스크립트가 계속 진행되고, 사용자가 아니요를 선택하면 스크립트가 종료되어야 합니다.

PowerShell은 -Confirm 스위치를 사용하여 작업을 수행하기 전에 사용자에게 자동으로 확인을 요청할 수 있습니다. 이 튜토리얼에서는 PowerShell에서 작업을 진행하기 위해 사용자에게 확인을 요청하는 다양한 방법을 소개합니다.

PowerShell에서 확인 프롬프트를 위한 -Confirm 스위치 사용

PowerShell에는 운영 환경에 영향을 미치고 동작을 사용자화할 수 있는 일련의 기본 변수들이 있습니다. $ConfirmPreference는 PowerShell이 cmdlet 또는 함수를 실행하기 전에 자동으로 확인을 프롬프트할지를 결정하는 기본 변수 중 하나입니다.

이 변수는 위험이 낮거나 중간이거나 높은 cmdlet 또는 함수를 실행하기 전에 확인을 요청하는 데 도움을 줍니다. 대부분의 cmdlet과 함수가 중간 위험이기 때문에, 변수의 값이 High로 설정되어 있을 경우에는 확인을 요청하지 않습니다.

$ConfirmPreference

출력:

High

사용자는 -Confirm 스위치를 명령에 사용하여 확인을 요청해야 합니다. 이는 PowerShell에서 명령이 확인 프롬프트를 표시하도록 강제합니다.

-Confirm 스위치를 사용하는 더 간단한 방법은 Remove-Item cmdlet에서 이를 사용하는 것입니다. 이는 더 간단한 명령에서 확인 작업을 생성할 수 있습니다. 다음 명령은 이것의 사용 예를 보여줍니다.

명령:

Remove-Item test.txt -Confirm

출력:

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove File" on target "C:\Users\rhntm\test.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): N

출력에서 -Confirm 스위치는 PowerShell이 확인 프롬프트를 표시하도록 강제합니다. 이 방법은 사용자가 간단한 '예' 또는 '아니요' 확인을 요청해야 하는 시나리오에 이상적입니다.

PowerShell의 GUI에서는 다음과 같이 보일 것입니다.

파워셸에서 스위치 프롬프트 확인

PowerShell에서 확인 프롬프트를 위한 if 문 사용

if 문을 사용하여 사용자가 계속 진행할 조건을 제공할 수도 있습니다. 예를 들어, 다음 명령은 사용자가 계속 진행할지 확인하도록 요청합니다.

명령:

$confirmation = Read-Host "Do you want to continue?"
if ($confirmation -eq 'y') {
    Write-Host "Welcome to DelftStack."
}

출력:

Do you want to continue?: y
Welcome to DelftStack.

Read-Host cmdlet은 사용자로부터 입력을 읽고 입력을 $confirmation 변수에 저장하는 데 사용됩니다. if 문은 사용자의 입력($confirmation)이 'y'와 같은지 확인하고, 참일 경우 지정된 작업을 실행합니다.

이 접근 방법은 사용자에게 표시되는 메시지를 사용자화하고 선택 시 발생하는 상황을 추가하는 옵션을 제공합니다.

PowerShell에서 확인 프롬프트를 위한 PromptForChoice() 메서드 사용

PowerShell에서는 PromptForChoice() 메서드를 사용하여 사용자에게 확인을 요청할 수도 있습니다. 이는 사용자가 옵션 집합 중 하나를 선택하고 선택에 따라 작업을 진행할 수 있도록 하는 대화 상자를 표시합니다.

다음 명령은 사용자에게 예/아니요 입력을 요청하는 예입니다. 우리는 확인 프롬프트에 대한 $title, $question, 및 $choices를 정의합니다.

명령:

$title = 'Confirm'
$question = 'Do you want to continue?'
$choices = '&Yes', '&No'

$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
    Write-Host 'Your choice is Yes.'
}
else {
    Write-Host 'Your choice is No.'
}

이 코드 줄 $decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)PromptForChoice() 메서드를 사용하여 사용자에게 대화 상자를 표시합니다. if 문에서는 $decision 변수에 저장된 값이 0(즉, $choices 배열의 첫 번째 선택의 인덱스)와 같은지 확인합니다.

1차 출력:

Confirm
Do you want to continue?
[Y] Yes  [N] No  [?] Help (default is "N"): Yes
Your choice is Yes.

1차 출력에서 사용자가 "예"를 선택합니다. 결과적으로 출력 "Your choice is Yes."가 출력됩니다.

2차 출력:

Confirm
Do you want to continue?
[Y] Yes  [N] No  [?] Help (default is "N"): No
Your choice is No.

2차 출력에서 사용자가 "아니요"를 선택하고 대괄호 안의 두 번째 명령이 실행됩니다. 따라서 "Your choice is No."가 출력됩니다.

이 방법은 더 인터랙티브하고 커스터마이즈 가능한 확인 경험을 제공하므로 복잡한 시나리오에 적합합니다.

GUI 버전의 PowerShell에서 위 스크립트를 실행하면 확인 대화 상자를 볼 수 있습니다.

PowerShell에서 PromptForChoice 확인 프롬프트

PowerShell에서 확인 프롬프트를 위한 함수 기반 접근법 사용

확인 논리를 포함하는 사용자 정의 PowerShell 함수를 생성할 수 있습니다. 이렇게 하면 함수 내에 확인 논리를 캡슐화하고 스크립트 전반에 걸쳐 재사용할 수 있습니다.

명령:

Function Confirm-Action {
    param (
        [string]$Message,
        [scriptblock]$Action
    )
    $confirmation = Read-Host $Message
    if ($confirmation -eq 'y') {
        & $Action
    }
}

Confirm-Action -Message "Do you want to continue?" -Action {
    Write-Host "Action executed."
}

Function Confirm-Action { ... } 줄은 Confirm-Action이라는 PowerShell 함수를 정의합니다. 이 함수는 두 개의 매개 변수를 가집니다: $Message$Action.

이 줄, $confirmation = Read-Host $MessageRead-Host cmdlet을 사용하여 사용자의 입력을 요청하고 입력을 변수 $confirmation에 저장합니다. $Message 매개변수는 사용자에게 표시되는 메시지를 지정합니다.

if 문은 $confirmation에 저장된 사용자의 입력이 문자 'y'와 같은지 확인합니다.

출력:

Do you want to continue?: y
Action executed.

명령을 실행하면 사용자에게 확인("Do you want to continue?")을 요청하고, 사용자가 'y'를 선택하면 메시지 "Action Executed"와 함께 작업을 실행합니다.

결론

PowerShell에서 확인 프롬프트는 사용자 제어 및 안전성을 위해 필수적입니다. 이 기사에서는 확인 프롬프트를 구현하는 네 가지 방법을 탐구했습니다. -Confirm 스위치는 기본적인 '예/아니요' 프롬프트를 간소화하고, Read-Host와 함께 사용하는 if 문은 사용자화를 허용하며, 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