PowerShell에서 프롬프트 확인하는 방법
-
PowerShell에서 확인 프롬프트를 위한
-Confirm
스위치 사용 -
PowerShell에서 확인 프롬프트를 위한
if
문 사용 -
PowerShell에서 확인 프롬프트를 위한
PromptForChoice()
메서드 사용 - 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에서 확인 프롬프트를 위한 함수 기반 접근법 사용
확인 논리를 포함하는 사용자 정의 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 $Message
는 Read-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에서 사용자에게 '예/아니요'
확인을 요청하는 방법을 이해하는 데 도움이 되기를 바랍니다.