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
展开
 我来答
Raiuy
推荐于2016-04-12 · TA获得超过2916个赞
知道大有可为答主
回答量:2210
采纳率:0%
帮助的人:895万
展开全部
使用延迟变量
注意第二句启用了延迟变量,另外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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式