CMD y BATCH | 21. Variable o cadena vacía 1
Transcripción e instrucciones del video
En el script de set /p (lección 15) había un problema: si el usuario pulsa Intro sin escribir nada, el script sigue y los mensajes quedan cojos («Qué bien , que sepas que el es el mejor coche…»). En esta lección del curso de CMD y Batch obligamos a escribir algo.
El script
CÓDIGO
@echo off
goto apartado1
:apartado1
cls
set /p nombre=Hola, por favor, introduce tu nombre:
if "%nombre%"=="" (goto apartado-no-hay-nombre) else (goto apartado2)
:apartado-no-hay-nombre
cls
echo Pon tu nombre, por favor!
pause >nul
goto apartado1
:apartado2
cls
echo.
echo Hola %nombre%, encantado de conocerte.
pause >nul
exit
Claves
- Una cadena vacía se escribe con dos comillas:
"". - La variable también tiene que ir entre comillas:
"%nombre%"=="". Sin ellas, la comparación falla. - Si está vacía, mostramos un aviso y volvemos a
:apartado1: un bucle hasta que escriba algo. - Revisa bien los símbolos:
pause <nul(menor que) en vez depause >nulrompe el script. Los errores de este tipo son muy habituales, no te desanimes.
Un detalle: si la variable ya tenía un valor de antes y el usuario pulsa Intro sin escribir, set /p conserva el valor anterior. Para evitarlo, vacíala antes de preguntar con set "nombre=".
En la siguiente lección, una forma más sencilla y robusta de hacer esto: IF NOT DEFINED. ¿Dudas? En los comentarios.