我正在尝试批量制作节目。 该程序的一部分,用户必须输入1到5之间的数字 然而,如果他没有放任何东西,程序将获取该变量的旧值(在他第一次放置之后),即使我再次将其设置为0(程序在循环中) 这是该程序的一部分示例: ps:在这种情况下,我手动设置为0,因此它循环
@echo off
goto bla
:bla
set /p a="a: "
if "%a%"=="" (
goto bla
)
echo a= %a%
set /p b="b: "
if "%b%"=="0" (
goto bla
)
pause
答案 0 :(得分:1)
如果用户只需按 Enter ,那么变量将保持不变。
如果您先将变量set
清空,然后执行set/p
,则可以检测到该情况。
set "var="
set /p "var=promptstring "
if not defined var echo nothing entered
这可用于应用默认值:
set "var=37"
set /p "var=promptstring [%var%]"
if not defined var echo nothing entered
echo %var%
(显示提示中的默认值(37))