如何获得批量从0到5的随机数?

首先,感谢您阅读本文。

我正在批量制作一个有趣的小程序来练习它,并熟悉。 我知道这可能不是最好的语言开始,但这正是我使用的。

这是我有什么:

@echo off :ask trump set /p Input= Ask Trump Something (Yes or No questions): goto random :random set /a "rand=%random% %% 6" goto option%number% cls :option0 echo You asked: %Input% echo Trump: Covfefe pause goto ask trump :option1 echo You asked: %Input% echo Trump: I dont know, and I dont care. pause cls goto ask trump option2 echo You asked: %Input% echo Trump: CHINA pause cls goto ask trump :option3 echo You asked: %Input% echo Trump: Build a wall. pause cls goto ask trump :option4 echo You asked: %Input% echo Trump: I think so, yes. pause cls goto ask trump :option5 echo You asked: %Input% echo Trump: No, I don't think there's a chance. pause cls goto ask trump 

我希望它完全不理会用户写什么,只是随便select一个答案。 但是,每当我尝试的时候,我都会input一个问题,然后回车,它什么也不做。 另一个input的东西popup没有任何新的文字,它崩溃,不pipe我在那里input。 我试图在这里find答案,但我找不到工作/做我想要的东西。

再次,我非常感谢任何帮助,如果我浪费了你的时间,我很抱歉。

你的主要问题是你set /a rand但是你从来没有使用rand作为变量,而是你说goto option%number%应该是`goto option%rand%

我改变了一些其他的东西,在添加cls之后:ask trump这种方式:ask trump你,你得到的是c:\>提示符,并且留下一个普通的cmd屏幕。 CLS被添加到其余的标签,所以它会在屏幕上看起来更清洁。

最后,line set /a rand=%random% %%6会生成一个介于0 - 5之间的数字,因为它是6个数字,但是根据实际值标记选项听起来更好。 所以,如果我有6个答案,我想标记他们1 - 6而不是0 - 5因此最好将随机set /a rand=%random% %%6 +1set /a rand=%random% %%6 +1选项也相应地更新。

 @echo off :ask trump cls set /p Input= Ask Trump Something (Yes or No questions): goto random :random set /a rand=%random% %%6 +1 goto option%rand% :option1 cls echo You asked: %Input% echo Trump: Covfefe pause goto ask trump :option2 cls echo You asked: %Input% echo Trump: I dont know, and I dont care. pause cls goto ask trump :option3 cls echo You asked: %Input% echo Trump: CHINA pause cls goto ask trump :option4 cls echo You asked: %Input% echo Trump: Build a wall. pause cls goto ask trump :option5 cls echo You asked: %Input% echo Trump: I think so, yes. pause cls goto ask trump :option6 cls echo You asked: %Input% echo Trump: No, I don't think there's a chance. pause cls goto ask trump