PowerShell での確認プロンプト
-
PowerShell の確認プロンプトに
-Confirm
スイッチを使用する -
PowerShell で確認プロンプトに
if
ステートメントを使用する -
PowerShell で確認プロンプトに
PromptForChoice()
メソッドを使用する
確認プロンプトの背後にある一般的な考え方は、さまざまなアクションを切り替えるオプションを作成することです。 たとえば、ユーザーがはい
を選択した場合はスクリプトを続行し、いいえ
を選択した場合はスクリプトを終了する必要があります。
PowerShell は、-Confirm
スイッチを使用してアクションを実行する前に、自動的にユーザーに確認を求めることができます。
このチュートリアルでは、PowerShell で続行するアクションについてユーザーに確認を求めるさまざまな方法を紹介します。
PowerShell の確認プロンプトに -Confirm
スイッチを使用する
PowerShell には、動作環境に影響を与える一連の設定変数があり、動作をカスタマイズできます。 $ConfirmPreference
は、コマンドレットまたは関数を実行する前に PowerShell が自動的に確認を求めるかどうかを決定する設定変数の 1つです。
リスクが低、中、または高のコマンドレットまたは関数を実行する前に、確認を促すのに役立ちます。 ほとんどのコマンドレットと関数のリスクは中程度であるため、変数の値が High
に設定されているかどうかの確認は求められません。
$ConfirmPreference
出力:
High
ユーザーに確認を促すには、コマンドに -Confirm
スイッチを使用する必要があります。 コマンドが PowerShell で確認プロンプトを表示するように強制します。
-Confirm
スイッチを使用するより簡単な方法は、Remove-Item
コマンドレットで使用することです。これにより、より簡単なコマンドで確認アクションを生成できます。
次のコマンドは、その使用例を示しています。
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
PowerShell の GUI では、このようになります。
PowerShell で確認プロンプトに if
ステートメントを使用する
if
ステートメントを使用して、ユーザーが続行するための条件を提供することもできます。
たとえば、次のコマンドは、続行するかどうかの確認をユーザーに求めます。 答えが y
に等しい場合、中括弧内のコマンドのみが実行されます。
$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
コマンドレットは、ユーザーからの入力を読み取るために使用されます。
PowerShell で確認プロンプトに PromptForChoice()
メソッドを使用する
PowerShell では、PromptForChoice()
メソッドを使用して、ユーザーに確認を求めることもできます。 ユーザーが一連のオプションから 1つのオプションを選択し、その選択に従ってアクションを続行できるようにするダイアログが表示されます。
次のコマンドは、ユーザーにはい/いいえ
の入力を求めるプロンプトを表示する例です。 ユーザーがはい
を選択すると、括弧{}
内の最初のコマンドが実行されます。
$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.'
}
出力:
Confirm
Do you want to continue?
[Y] Yes [N] No [?] Help (default is "N"): Yes
Your choice is Yes.
その結果、出力 Your choice is Yes.
が表示されます。 印刷されます。
ユーザーがいいえ
を選択すると、括弧内の 2 番目のコマンドが実行されます。
出力:
Confirm
Do you want to continue?
[Y] Yes [N] No [?] Help (default is "N"): No
Your choice is No.
したがって、あなたの選択はNoです。
印刷されます。
GUI バージョンの PowerShell で上記のスクリプトを実行すると、確認ダイアログ ボックスが表示されます。
このチュートリアルが、PowerShell でユーザーにはい/いいえ
の確認を求める方法を理解するのに役立つことを願っています。