Como posso criar um script Powershell que possa aproveitar a opção de confirmação padrão?

Como posso criar um script Powershell que possa aproveitar a opção de confirmação padrão?

Digamos que eu tenha um .ps1 com este conteúdo (o conteúdo real não importa):

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

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

Gostaria de adicionar ao meu script (ou a qualquer método) uma mensagem de confirmação, que pode ser desativada (ativada por padrão).

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

Como eu posso fazer isso ?

Responder1

Com funções avançadas, você pode usar algo chamado ShouldProcess.

No topo do seu script, você pode adicionar um atributo chamado [CmdletBinding]

[CmdletBinding(

        SupportsShouldProcess=$true,

        ConfirmImpact="High"

    )]

Depois de fazer isso, no corpo da sua função, você precisa usar uma instrução if

if ($pscmdlet.ShouldProcess($thingIamGoingToChange))

Dê uma olhada na ajuda about_advanced_functions e na ajuda about_functions_cmdletbinding.

informação relacionada