web-dev-qa-db-de.com

Bitte überprüfen Sie, ob Sie Zeichenfolgenvariable im Stapelskript leer ist

Ich versuche, ein Stapelskript zu schreiben, um eine Zeichenfolge in einer Variablen abzurufen und zu überprüfen, ob sie leer ist. Wenn sie leer ist, wird sie an eine Schleife weitergeleitet. Der folgende Code stellt das Problem dar

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

Das Programm beginnt erneut zu loopen, auch wenn ich einen String gebe.

Ich habe versucht, IF [%cide%]==[] goto loop oder IF %cide%==[] goto loop zu setzen. Es wurde der Fehler "ELSE" ausgegeben, der nicht erkannt wurde.

Jede Hilfe wird geschätzt. Vielen Dank

3
susil95

Sie können so etwas ausprobieren:

@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