Batch file “此时不应出现5个”
所以,我和一个朋友正在制作一个批量RPG,我们有一个基于随机数b/w 1和10的战斗系统。代码片段是:Batch file “此时不应出现5个”,batch-file,Batch File,所以,我和一个朋友正在制作一个批量RPG,我们有一个基于随机数b/w 1和10的战斗系统。代码片段是: SET /A RANval=%RANDOM% * 10 / 32768 + 1 echo %RANval% pause if %RANval% GTR 5 goto O_Battle if %RANval% LSS 5 goto O_NoBattle if %RANval% == 5 goto O_RareBattle 但问题是:它一直与5崩溃,这在当时是出人意料的 有人能帮我吗 编辑:当我
SET /A RANval=%RANDOM% * 10 / 32768 + 1
echo %RANval%
pause
if %RANval% GTR 5 goto O_Battle
if %RANval% LSS 5 goto O_NoBattle
if %RANval% == 5 goto O_RareBattle
但问题是:它一直与5崩溃,这在当时是出人意料的
有人能帮我吗
编辑:当我更改LSS 5和全球技术法规5下的5时,问题似乎发生了变化。i、 e.如果我做了LSS 3和GTR 3,它会说3在这个时候是出乎意料的
抱歉,这是我第一次使用stackoverflow如果我将以下内容放入批处理文件中,它对我有效,那么您的转到标签可能有问题
SET /A RANval=%RANDOM% * 10 / 32768 + 1
echo %RANval%
if %RANval% GTR 5 goto O_Battle
if %RANval% LSS 5 goto O_NoBattle
if %RANval% == 5 goto O_RareBattle
:O_Battle
echo "Battle"
goto end
:O_NoBattle
echo "No Battle"
goto end
:O_RareBattle
echo "Rare"
goto end
:end
此时出现的错误消息5是意外的,这正是您在Windows XP和7下看到的,至少如果您键入:
if GTR 5 echo blah
这让我相信if语句中的变量名是不正确的,因为:
if %no_such_var% GTR 5 echo blah
将导致变量被替换为空,并且发生错误
所以,检查一下你没有做过一些愚蠢的事情,比如在你的if语句中使用1wun而不是l ell。如果需要,使用一个很难出错的简单变量,如r:-
有趣的是,这似乎只发生在批处理文件中,而不是从命令行。这两种方法可能有不同的规则,但如果您正在测试,请确保在批处理文件中进行测试。这是Lufiagy2000,它不允许我在学校计算机上使用G+登录>: 我修复了它,我只需要删除代码周围的括号。我想我必须解决不使用括号的问题。除非有人想出解决办法。谢谢你们的回答 因为它在内部,所以需要使用延迟扩展 使用延迟扩展使用!而不是变量的% 试试这个:
@echo off
setlocal enabledelayedexpansion
IF "A"=="A" (
SET /A RANval=%RANDOM% * 10 / 32768 + 1
echo !RANval!
pause
if !RANval! GTR 5 goto O_Battle
if !RANval! LSS 5 goto O_NoBattle
if !RANval! == 5 goto O_RareBattle
)
尝试使用延迟扩展。在批处理文件的开头,放入:
setlocal enableDelayedExpansion
此外,将您的变量用!而不是像这样:
if !RANval! GTR 5 goto O_Battle
if !RANval! LSS 5 goto O_NoBattle
if !RANval! == 5 goto O_RareBattle
<>这应该解决这个问题。可能想考虑使用一个合适的编程环境。这会让生活更轻松。哪个版本赢?这在Win7上运行得很好。几年后,他会说,伙计,没什么,我在批处理文件@user2864740中写了一个RPG。这段代码在for循环中吗?不,但在lf loc==这一行中,你知道它在哪一行失败了吗?如果我更改LSS语句和GTR语句,此时更改为出乎意料,替换为任何数字正在等待…请稍候,让我再试一次。。。我将用我的结果编辑此评论编辑:不,对我来说仍然不起作用。好的,我会在早上检查,稍后我会更新。我要睡觉了,请给未来的用户显示你答案的代码。也不建议有两个登录,尤其是当一个配置文件正在回答另一个配置文件提出的问题时。很高兴最后成功了。