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

1

Digamos que eu tenha um .ps1 com esse 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 de fato) uma mensagem de confirmação, que pode ser desativada (ativada por padrão).

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

Como posso fazer isso?

    
por Steve B 26.04.2012 / 16:03

1 resposta

3

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

Na parte superior do seu script, você pode adicionar um atributo chamado [CmdletBinding]

[CmdletBinding(

        SupportsShouldProcess=$true,

        ConfirmImpact="High"

    )]

Depois de ter 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 ajude about_functions_cmdletbinding.

    
por 26.04.2012 / 16:57

Tags