如何使变量加上随机数?

时间:2015-02-21 21:51:56

标签: batch-file

这里有我的一点代码:

if %a%==1 set /a count=%count%+%random% %%100

它的作用(目前)只是保持%count%而不是增加1到100之间的随机数。

我想要它做的是:
如果a等于1(它总是在较早的代码行中),则会增加0到99之间的随机数。如果有人可以提供帮助,那就太棒了! (这是我第一次使用stackoverflow而且我是编程新手,所以请简单一点!)

1 个答案:

答案 0 :(得分:0)

我不确定你的问题是什么?你发布了完整的脚本吗?以下脚本适合我。

@echo off
setlocal

set a=1
set count=0
echo count: %count%

if %a% == 1 set /a count=%count%+%random% %%100

echo count: %count%

正如 MC ND 指出,如果您在另一个区域内使用count(例如,在for循环中),则可能会遇到问题。以下不起作用。

@echo off
setlocal

set a=1
set count=0

for /L %%x in (1,1,1) do (
    if %a% == 1 set /a count=%count%+%random% %%100

    rem This always prints 0!
    echo count: %count%
)

要使其工作,请使用setlocal enableDelayedExpansion。以下内容再次有效。

@echo off
setlocal enableDelayedExpansion

set a=1
set count=0

for /L %%x in (1,1,1) do (
    if !a! == 1 set /a count=!count!+%random% %%100

    rem Now this works!
    echo count: !count!
)