Solicitud de confirmación en PowerShell

Rohan Timalsina 15 febrero 2024
  1. Use el interruptor -Confirmar para el mensaje de confirmación en PowerShell
  2. Utilice la instrucción if para la solicitud de confirmación en PowerShell
  3. Use el método PromptForChoice() para el mensaje de confirmación en PowerShell
Solicitud de confirmación en PowerShell

La idea general detrás del mensaje de confirmación es crear una opción para cambiar entre diferentes acciones. Por ejemplo, cuando el usuario elige “Sí”, la secuencia de comandos debe continuar, y cuando el usuario selecciona No, se debe salir de la secuencia de comandos.

PowerShell puede solicitar automáticamente la confirmación del usuario antes de realizar cualquier acción utilizando el interruptor -Confirmar.

Este tutorial presentará diferentes métodos para solicitar la confirmación de los usuarios para realizar cualquier acción en PowerShell.

Use el interruptor -Confirmar para el mensaje de confirmación en PowerShell

PowerShell tiene un conjunto de variables de preferencia que afectan su entorno operativo y le permite personalizar su comportamiento. $ConfirmPreference es una de las variables de preferencia que determina si PowerShell le solicita confirmación automáticamente antes de ejecutar un cmdlet o una función.

Ayuda a solicitar confirmación antes de ejecutar cmdlets o funciones con un riesgo bajo, medio o alto. Dado que la mayoría de los cmdlets y funciones son de riesgo medio, no pide confirmación si el valor de la variable está establecido en Alto.

$ConfirmPreference

Producción :

High

Debe usar el interruptor -Confirmar en el comando para solicitar al usuario la confirmación. Obliga al comando a mostrar el mensaje de confirmación en PowerShell.

Una forma más sencilla de usar el modificador -Confirmar sería usarlo en el cmdlet Remove-Item, que puede producir una acción de confirmación en un comando más simple.

El siguiente comando muestra un ejemplo de su uso.

Remove-Item test.txt -Confirm

Producción :

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove File" on target "C:\Users\rhntm\test.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): N

En la GUI de PowerShell, se verá así.

confirme el indicador de cambio en powershell

Utilice la instrucción if para la solicitud de confirmación en PowerShell

También puede utilizar la declaración if y proporcionar las condiciones para que los usuarios continúen.

Por ejemplo, el siguiente comando le pide al usuario que confirme si desea continuar. Si la respuesta es igual a y, solo se ejecuta el comando entre llaves.

$confirmation = Read-Host "Do you want to continue?"
if ($confirmation -eq 'y') {
Write-Host "Welcome to DelftStack."
}

Producción :

Do you want to continue?: y
Welcome to DelftStack.

El cmdlet Read-Host se usa para leer la entrada de un usuario.

Use el método PromptForChoice() para el mensaje de confirmación en PowerShell

En PowerShell, también puede solicitar la confirmación de los usuarios mediante el método PromptForChoice(). Muestra un cuadro de diálogo que permite al usuario seleccionar una opción de un conjunto de opciones y continuar con la acción de acuerdo con sus elecciones.

El siguiente comando es un ejemplo que solicita una entrada de Sí/No a un usuario. Si el usuario elige , se ejecutará el primer comando entre corchetes {}.

$title    = 'Confirm'
$question = 'Do you want to continue?'
$choices  = '&Yes', '&No'

$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
    Write-Host 'Your choice is Yes.'
} else {
    Write-Host 'Your choice is No.'
}

Producción :

Confirm
Do you want to continue?
[Y] Yes  [N] No  [?] Help (default is "N"): Yes
Your choice is Yes.

Como resultado, la salida Su elección es Sí. se imprime

Si el usuario selecciona No, se ejecutará el segundo comando entre paréntesis.

Producción :

Confirm
Do you want to continue?
[Y] Yes  [N] No  [?] Help (default is "N"): No
Your choice is No.

Por lo tanto, Tu elección es No. está impreso.

Si ejecuta el script anterior en la versión GUI de PowerShell, puede ver el cuadro de diálogo de confirmación.

Solicitud de confirmación de PromptForChoice en powershell

Esperamos que este tutorial lo ayude a comprender cómo solicitar a los usuarios una confirmación de “Sí/No” en PowerShell.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website