bat编程,为什么if语句中接收不到输入(set /p)的内容
以下为bat代码,我健入1,进入if,我故意在if中用了goto循环用来验证是否接收到我输入的内容,我发现,第一次循环接收不到我输入的内容,从第二次循环开始就能够接收到了...
以下为bat代码,我健入1,进入if,我故意在if中用了goto循环用来验证是否接收到我输入的内容,我发现,第一次循环接收不到我输入的内容,从第二次循环开始就能够接收到了,请高手帮我修改下,我需要一进入if,用set /p就能够接收到我输入的内容
@echo off
echo 0-退出 1-继续
set /p input=请选择:
if %input%==1 (
:loop
set /p name=请输入名称:
echo name=%name%
set /p password=请输入密码:
echo password=%password%
goto loop
)
if %input%==0 exit
pause 展开
@echo off
echo 0-退出 1-继续
set /p input=请选择:
if %input%==1 (
:loop
set /p name=请输入名称:
echo name=%name%
set /p password=请输入密码:
echo password=%password%
goto loop
)
if %input%==0 exit
pause 展开
1个回答
展开全部
使用延迟变量
注意第二句启用了延迟变量,另外loop中的变量名不是用百分号而是用感叹号来表示的
@echo off
setlocal EnableDelayedExpansion
echo 0-退出 1-继续
set /p input=请选择:
if %input%==1 (
:loop
set /p name=请输入名称:
echo name=!name!
set /p password=请输入密码:
echo password=!password!
goto loop
)
if %input%==0 exit
pause
注意第二句启用了延迟变量,另外loop中的变量名不是用百分号而是用感叹号来表示的
@echo off
setlocal EnableDelayedExpansion
echo 0-退出 1-继续
set /p input=请选择:
if %input%==1 (
:loop
set /p name=请输入名称:
echo name=!name!
set /p password=请输入密码:
echo password=!password!
goto loop
)
if %input%==0 exit
pause
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询