如何让一个变量加上一个随机数?

How to make a variable plus a random number?

这是我的一小段代码:

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

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

我想要它做的是:
如果 a 等于 1(它总是在较早的代码行中),它​​将增加 count 一个介于 0 和 99 之间的随机数。如果有人能提供帮助,那就太好了! (这是我第一次使用 Whosebug,而且我是编程新手,所以让它变得简单!)

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

@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 指出的那样,如果您在另一个块内(例如,在 for 循环内)使用 count,您可能会遇到问题。以下无效。

@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!
)