当用户不给它一个新变量时,我该如何删除变量的旧值

时间:2017-11-28 23:20:41

标签: batch-file

我正在尝试批量制作节目。 该程序的一部分,用户必须输入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

1 个答案:

答案 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))