3

我试图在 1 和一个变量之间创建一个随机数,每次程序运行时这个变量都会改变。到目前为止我正在使用这个: SET /A result=%random%*%var%/32768+1

但是每次我重新运行批处理文件时,它都会返回相同的数字,人们知道发生了什么吗?

提前致谢

4

3 回答 3

3

试试这个:

set /a result=(%random% %% %var%) + 1
于 2013-03-22T22:05:39.643 回答
2

您不需要var在命令中用百分号括起来SET /A;这种形式应该解决与块内部/外部正常扩展相关的所有问题:

SET /A result=%random%*var/32768+1

但是,如果前一个命令一个块内,您应该为此更改它(并启用延迟扩展):

SET /A result=!random!*var/32768+1

如果以前的解决方案仍然不起作用,我敢打赌您正在定义一个名为random! 这可以防止%random%在内部创建并始终返回分配给它的值。

安东尼奥

于 2013-03-23T00:12:00.373 回答
0

IMO 您必须在 a fororif代码块中使用延迟扩展。

于 2013-03-22T21:55:47.103 回答