PowerShell での確認プロンプト

Rohan Timalsina 2023年6月21日
  1. PowerShell の確認プロンプトに -Confirm スイッチを使用する
  2. PowerShell で確認プロンプトに if ステートメントを使用する
  3. PowerShell で確認プロンプトに PromptForChoice() メソッドを使用する
PowerShell での確認プロンプト

確認プロンプトの背後にある一般的な考え方は、さまざまなアクションを切り替えるオプションを作成することです。 たとえば、ユーザーがはいを選択した場合はスクリプトを続行し、いいえを選択した場合はスクリプトを終了する必要があります。

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 で切り替えプロンプトを確認

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 での PromptForChoice 確認プロンプト

このチュートリアルが、PowerShell でユーザーにはい/いいえの確認を求める方法を理解するのに役立つことを願っています。

著者: Rohan Timalsina
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