
このコンテンツを含む .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 をご覧ください。