Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何让批次选择0到5之间的随机数?_Windows_Batch File_Cmd - Fatal编程技术网

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非常感谢您!我太傻了,没试过。。。