
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.