Windows 如何让批次选择0到5之间的随机数?
首先,感谢您阅读本文 我正在批量制作一个有趣的小程序来练习和熟悉它。我知道这可能不是最好的语言开始,但它是我正在使用的 以下是我所拥有的:Windows 如何让批次选择0到5之间的随机数?,windows,batch-file,cmd,Windows,Batch File,Cmd,首先,感谢您阅读本文 我正在批量制作一个有趣的小程序来练习和熟悉它。我知道这可能不是最好的语言开始,但它是我正在使用的 以下是我所拥有的: @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:
@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
我希望它完全忽略用户写的内容,只选择一个随机答案。但是,每当我尝试它时,我都会输入一个问题,按回车键,但它什么也不做。另一个输入的东西弹出,没有任何新的文本,它崩溃,无论我在那里键入什么。我曾试图在这里找到答案,但我找不到能起作用/做我想做的事情
再次感谢您的帮助,如果我浪费了您的时间,我深表歉意。您的主要问题是您设置了/a rand,但您从未将
rand
用作变量,而是说转到选项%number%
,这应该是“转到选项%rand%”
我还做了一些改变,在之后添加了cls:这样问特朗普,你就可以摆脱c:\>
提示符,留下一个普通的cmd屏幕。
cls也被添加到了其余的标签中,所以它在屏幕上看起来更干净
最后,行set/a rand=%random%%%6
将生成一个介于0-5
之间的数字集,这很好,因为它是6个数字,但基于实值标记选项听起来是一个更好的主意。因此,如果我有6个答案,我想将它们标记为1-6
而不是0-5
,因此最好将随机设置为set/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
您的主要问题是设置/a rand
,但您从未将rand
用作变量,而是说转到选项%number%
,该选项应为“转到选项%rand%
我还做了一些改变,在之后添加了cls:这样问特朗普,你就可以摆脱c:\>
提示符,留下一个普通的cmd屏幕。
cls也被添加到了其余的标签中,所以它在屏幕上看起来更干净
最后,行set/a rand=%random%%%6
将生成一个介于0-5
之间的数字集,这很好,因为它是6个数字,但基于实值标记选项听起来是一个更好的主意。因此,如果我有6个答案,我想将它们标记为1-6
而不是0-5
,因此最好将随机设置为set/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
在这两行代码中应该像day一样简单<代码>设置/a“rand=%random%%%6”
和转到选项%number%
。如果您想通过在cmd提示符下运行批处理文件并打开echo
来正确调试批处理文件,您会看到错误消息,简单地说就是day。@Squashman非常感谢您!我太傻了,没试过……在这两行代码中应该像day一样简单<代码>设置/a“rand=%random%%%6”
和转到选项%number%
。如果您想通过在cmd提示符下运行批处理文件并打开echo
来正确调试批处理文件,您会看到错误消息,简单地说就是day。@Squashman非常感谢您!我太傻了,没试过。。。