0
点赞
收藏
分享

微信扫一扫

Windows系统的cmd的set/p在if语句中读取的是上一次的值

大沈投资笔记 2022-02-11 阅读 50
windows
...
if %i==2% (
set/p a=
echo %a%
)
...

echo a语句是为了输出本次读取的a的值,结果可以看到每次读取的a的值都是上次的输入的,而不是本次输入的,比如上次输入的值是1,本次输入的值是2,则本次set/p a= 读取的a的值是1,而不是2!

解决:
开启变量延迟。在文件开头加上setlocal enabledelayedexpansion,并且变量用叹号!替换百分号%括起来。比如在上面的例子中使用a变量时不能再用echo %a%,而是echo !a!

参考:
批处理命令set/p var写在if里面为什么取不到本次输入的var的值,只能取到上一次运行cmd时运行的值

举报

相关推荐

0 条评论