標準の確認スイッチを活用できる Powershell スクリプトを作成するにはどうすればよいですか?

標準の確認スイッチを活用できる Powershell スクリプトを作成するにはどうすればよいですか?

このコンテンツを含む .ps1 があるとします (実際のコンテンツは重要ではありません)。

param(
    [Parameter(Mandatory=$true)]
    [string]
    $someArgument
)

# Do something risky
Remove-Item "c:\path\$someArgument.txt"

スクリプト (または実際には任意のメソッド) に、オフにできる (デフォルトではオン) 確認メッセージを追加したいと思います。

.\myscript.ps1 "foo" -Confirm:$false

どうやってやるの ?

答え1

高度な機能では、ShouldProcess と呼ばれるものを使用できます。

スクリプトの先頭に、[CmdletBinding]という属性を追加できます。

[CmdletBinding(

        SupportsShouldProcess=$true,

        ConfirmImpact="High"

    )]

それができたら、関数の本体でif文を使用する必要があります。

if ($pscmdlet.ShouldProcess($thingIamGoingToChange))

help about_advanced_functions と help about_functions_cmdletbinding をご覧ください。

関連情報