我试图在 1 和一个变量之间创建一个随机数,每次程序运行时这个变量都会改变。到目前为止我正在使用这个: SET /A result=%random%*%var%/32768+1
但是每次我重新运行批处理文件时,它都会返回相同的数字,人们知道发生了什么吗?
提前致谢
我试图在 1 和一个变量之间创建一个随机数,每次程序运行时这个变量都会改变。到目前为止我正在使用这个: SET /A result=%random%*%var%/32768+1
但是每次我重新运行批处理文件时,它都会返回相同的数字,人们知道发生了什么吗?
提前致谢
试试这个:
set /a result=(%random% %% %var%) + 1
您不需要var
在命令中用百分号括起来SET /A
;这种形式应该解决与块内部/外部正常扩展相关的所有问题:
SET /A result=%random%*var/32768+1
但是,如果前一个命令在一个块内,您应该为此更改它(并启用延迟扩展):
SET /A result=!random!*var/32768+1
如果以前的解决方案仍然不起作用,我敢打赌您正在定义一个名为random
! 这可以防止%random%
在内部创建并始终返回您分配给它的值。
安东尼奥
IMO 您必须在 a for
orif
代码块中使用延迟扩展。