dos批处理中开启延迟变量后计算错误问题, 为啥会这样呢?

脚本很简单,就是判断两个数是否相同,如果不开延迟变量结果是对的,但开启延迟变量结果就是错的.@echooffsetlocalenabledelayedexpansions... 脚本很简单,就是判断两个数是否相同, 如果不开延迟变量结果是对的,但开启延迟变量结果就是错的.

@echo off
setlocal enabledelayedexpansion

set /p a="请输入第一个数字:"
set /p b="请输入第二个数字:"

if %a% == %b% (echo "a=b") else (echo "a!=b")

pause
展开
 我来答
朴素且可爱灬小喵1
2018-06-23 · TA获得超过2902个赞
知道大有可为答主
回答量:1713
采纳率:89%
帮助的人:507万
展开全部
(echo "a!=b")要改成(echo "a^!=b")
因为开了变量延迟后,!会作为for/if之类子句中的变量引用字符,也就是!会替代%了,所以报错。加上^表示后面的字符就是原来的字符,不要cmd环境做“翻译”。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式