
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.