web-dev-qa-db-fra.com

Vérifier si une variable de chaîne est vide dans un script batch

J'essaie d'écrire un script batch pour obtenir une chaîne dans une variable et vérifier si elle est vide et si elle est vide, elle est dirigée vers une boucle. Le code ci-dessous représente le problème

:loop
set /p cide=
IF NOT "a%1"=="a" (set cide="%1")
IF [%1]==[] goto loop
ELSE
echo IDE entered
TIMEOUT 5 > NUL

Le programme recommence à boucler même si je donne une chaîne.

J'ai essayé de mettre IF [%cide%]==[] goto loop ou IF %cide%==[] goto loop il a donné une erreur indiquant "ELSE" non reconnu.

Toute aide est appréciée. Merci

3
susil95

Vous pouvez essayer quelque chose comme ça:

@echo off
:loop
cls & Color 0A
echo Type what you want !
set /p "cide="
IF "%cide%"=="" ( 
    Cls & Color 0C
    echo You must enter something
    Timeout /T 2 /NoBreak>nul
    goto loop
) ELSE (
    Goto Next
)

:Next
Cls
echo %cide% is entered
pause
6
Hackoo
@echo off
:loop
cls & Color 0A
echo Type what you want !
set /p "cide="
IF [%cide%]==[] (
     Cls & Color 0C
     echo You must enter something
     choice /d y /t 2 > nul
     goto loop              
) ELSE (
     Goto Next
 )

:Next
Cls
echo %cide% is entered
pause
0
user10865636