Batch脚本双If语句失效求助——辐射式技能点数分配系统
问题排查:Batch脚本技能点数分配逻辑异常
嘿,我一眼就揪出问题所在啦!你的双if语句里,第二个判断条件犯了个很典型的Batch脚本小错误——你直接写了"skp",而不是引用变量"%skp%"。
在Batch脚本里,要调用变量的实际值,必须用百分号%把变量名包裹起来。你现在写的if "skp"=="0",本质是在把字符串skp和字符串0做比较,这俩永远不可能相等,所以跳转到skperrors的逻辑根本不会触发,程序自然就直接执行后面的点数修改代码了。
修正后的代码应该是这样的:
if "%sdec%"=="5" ( if "%skp%"=="0" goto skperrors set /a "skp=skp-5" set /a "s=s+5" )
另外给你提个小建议:如果后续需要判断剩余点数是否足够分配(比如用户输入5但剩余点数只有3),可以用数值比较代替字符串比较,比如if %skp% lss 5 goto skperrors,这样能避免字符串比较可能带来的数值判断误差哦。
内容的提问来源于stack exchange,提问作者Gl1tch Crashed
相关产品推荐
相关产品推荐

