检查批处理脚本中的字符串变量是否为空

sus*_*l95 6 if-statement batch-file

我正在尝试编写批处理脚本以获取变量中的字符串并检查它是否为空,如果它是空的,则将其定向到循环.以下代码表示问题

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

即使我给了一个字符串,程序也会再次循环.

我试图把它IF [%cide%]==[] goto loopIF %cide%==[] goto loop它给出一个错误,说明"ELSE"无法识别.

任何帮助表示赞赏.谢谢

Hac*_*koo 6

你可以试试这样的东西:

@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
Run Code Online (Sandbox Code Playgroud)


小智 6

@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
Run Code Online (Sandbox Code Playgroud)