Solicitud de confirmación en PowerShell
-
Use el interruptor
-Confirmar
para el mensaje de confirmación en PowerShell -
Utilice la instrucción
if
para la solicitud de confirmación en PowerShell -
Use el método
PromptForChoice()
para el mensaje 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í.
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 Sí
, 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.
Esperamos que este tutorial lo ayude a comprender cómo solicitar a los usuarios una confirmación de “Sí/No” en PowerShell.