如何在CMD中生成一个不基于系统时钟的随机数

时间:2016-08-10 09:45:35

标签: batch-file random cmd systemtime

我想在批处理文件中创建一个随机数,而不是基于系统时钟时间。

我一直在尝试使用%RANDOM%,但它不能满足我的需求。

原因是我想将我在muliple线程中收到的文件名写入文件,当我使用系统时间%RANDOM%方法时,我得到文件之间的冲突,因为系统时间基于秒而不是毫秒。

所以我需要一种基于系统时间以外的其他东西生成随机数的方法......

2 个答案:

答案 0 :(得分:2)

如果你有线程,那么添加一个随机生成器线程,根据需要为其他线程提供随机数。在该线程中运行一个RNG,仅从时钟初始化一次。其他线程调用随机生成器线程来获取序列中的下一个随机数。

当随机线程启动时,时钟仅使用一次,因此只要随机线程运行超过一秒钟,就不会出现时间冲突的问题。

如果有必要,其他线程可以使用他们的单个随机数来种子自己的RNG以生成更多数字。

答案 1 :(得分:2)

如果问题在于您运行多个线程,则无法为每个批处理文件为每个不同的线程(例如id)提供“唯一ID”变量,并将其附加到{{1}的末尾为每个人生成一个不同的数字。 E.g:

%random%

如果多个线程只是问题,那么这应该有效。