¿Cómo puedo crear un script de Powershell que pueda aprovechar el interruptor de confirmación estándar?

¿Cómo puedo crear un script de Powershell que pueda aprovechar el interruptor de confirmación estándar?

Digamos que tengo un .ps1 con este contenido (el contenido real no importa):

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

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

Me gustaría agregar a mi script (o a cualquier método) un mensaje de confirmación, que se puede desactivar (activado de forma predeterminada).

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

Cómo puedo hacer eso ?

Respuesta1

Con las funciones avanzadas, puedes usar algo llamado ShouldProcess.

En la parte superior de su secuencia de comandos, puede agregar un atributo llamado [CmdletBinding]

[CmdletBinding(

        SupportsShouldProcess=$true,

        ConfirmImpact="High"

    )]

Una vez que tengas eso, en el cuerpo de tu función, necesitas usar una declaración if

if ($pscmdlet.ShouldProcess($thingIamGoingToChange))

Eche un vistazo a la ayuda about_advanced_functions y a la ayuda about_functions_cmdletbinding.

información relacionada