Pregunta
¿Cómo proceder con un archivo por lotes interactivo?
Por ejemplo,
¿Quieres continuar? [y / n]
Si 'y' Goto Label1
Else Goto Label2
Gracias
Solución
Puedes usar el comando SET. El siguiente es el comando de DOS equivalente del pseudo código que tiene arriba:
set /p choice=Do you want to continue? [y/n]
if '%choice%'=='Y' goto label1
goto label2
Otros consejos
Usando el comando de elección, puede especificar un conjunto de caracteres válidos y un mensaje:
choice /C YN /M "Do you want to continue?"
if errorlevel 2 goto labelno
if errorlevel 1 goto labelyes
set / p choice = ¿Quieres continuar? [y / n] si "% choice% " == " y " ( goto label1 ) else goto label2
La mayoría de las respuestas de tus chicos me gustan, pero lo máximo que haría es (por ejemplo, este código es mi forma de organización.
:Label1
@echo off
color (any color)
title (anything here)
set /p choice=Do you want to continue? [y/n]
IF %choice% == y goto Label2
IF %choice% == n exit
:Label2
cls
echo you chose Yes.
Sé una manera de hacerlo (como @ user3093687 publicado)
set /p choice=Do you want to continue? (y,n)
if /I %choice%==y goto Label2
if /I %choice%==n goto exit
:Label2
Cls
echo You chose yes
:exit
exit
El / I en la segunda y tercera línea del archivo de proceso por lotes hace que no distinga entre mayúsculas y minúsculas y se ignoran los caracteres especiales (los ejemplos Y e y se leerán como y.