我想在批处理文件中创建一个随机数,而不是基于系统时钟时间。
我一直在尝试使用%RANDOM%
,但它不能满足我的需求。
原因是我想将我在muliple线程中收到的文件名写入文件,当我使用系统时间%RANDOM%
方法时,我得到文件之间的冲突,因为系统时间基于秒而不是毫秒。
所以我需要一种基于系统时间以外的其他东西生成随机数的方法......
答案 0 :(得分:2)
如果你有线程,那么添加一个随机生成器线程,根据需要为其他线程提供随机数。在该线程中运行一个RNG,仅从时钟初始化一次。其他线程调用随机生成器线程来获取序列中的下一个随机数。
当随机线程启动时,时钟仅使用一次,因此只要随机线程运行超过一秒钟,就不会出现时间冲突的问题。
如果有必要,其他线程可以使用他们的单个随机数来种子自己的RNG以生成更多数字。
答案 1 :(得分:2)
如果问题在于您运行多个线程,则无法为每个批处理文件为每个不同的线程(例如id
)提供“唯一ID”变量,并将其附加到{{1}的末尾为每个人生成一个不同的数字。 E.g:
%random%
如果多个线程只是问题,那么这应该有效。