如何创建可以利用标准确认开关的 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))

查看帮助 about_advanced_functions 和帮助 about_functions_cmdletbinding。

相关内容