我运行 set /A Prov=%RANDOM% * 6 / 32768 并得到相同的数字 (5),每个,单个,时间

问题描述 投票:0回答:2

在启用延迟扩展的情况下运行 .bat 文件中的这行代码。
我试过:

set /A Prov=!RANDOM! * 6 / 32768 (Always Equals 5)

我试过:
set /A Prov=!RANDOM! * 5 / 32768 (Always Equals 4)

我试过:
set /a Prov=%random% %%6 + 1 (Always Equals 3, except rarely equals 6)

没有其他代码正在写入 Prov,并且它不在循环或 for 中 这可能是什么原因造成的! >,_ <

我希望每次运行命令或批处理文件时它都会给我一个 1 到 6 之间的不同数字,但它总是相同的,即使文件关闭并再次运行也是如此。

batch-file random
2个回答
0
投票

这个批处理程序应该可以工作

@echo off
setlocal EnableDelayedExpansion
set "random"
echo #1 !random! !random!

预期产量

未定义环境变量“random”。
#1 13400 3633

您应该收到

set "random"
命令的错误消息。
你应该在
test #1

中得到两个不同的值

0
投票

不知道为什么会这样,但删除空格解决了我的问题......

而不是: 设置 /a Prov=!随机! * 6 / 32768 + 1

正在做: 设置 /a Prov=!随机!*6/32768+1

这在我的情况下有效,但我不明白为什么这会导致问题?

© www.soinside.com 2019 - 2024. All rights reserved.