这段代码有很长的加载时间,如何减少加载? (批量)

时间:2015-06-28 21:59:01

标签: windows batch-file random

好的,我的代码是一个简单的批号生成器1-10,我需要一种方法来使代码不需要每组代码1分钟。我在我的脚本中多次使用此代码,导致最多5分钟的无法加载时间。

  :ans
set /a ran=%random%
if /i %ran% GTR 10 goto :ans
if /i %ran% LSS 1 goto :ans

此代码重复随机功能,直到出现数字1-10。这需要很长时间,因为它有超过31.990的其他方式。 请告诉我如何解决此问题,使用不同的代码集或编辑版本的代码。谢谢。

2 个答案:

答案 0 :(得分:0)

限制数量?像这样:

  :ans
set /a ran=%random% * 15 / 32768 + 1
if %ran% gtr 10 goto ans
if %ran% lss 1 goto ans

15是限制数字,你可以把它改成任何东西,低于32767。

答案 1 :(得分:0)

您需要使用模运算符限制%RANDOM%的范围:%%。 试试这个:

set /a botlimit = X set /a uplimit = Y :ans set /a ran = %botlimit%+%RANDOM% %% (%uplimit%-%botlimit% + 1) if /i %ran% GTR 10 goto :ans if /i %ran% LSS 1 goto :ans

您需要为X和Y赋值。 +1是必要的,否则永远不会生成uplimit(因为你使用模运算符)。我没有测试过,所以我希望它有效。