正在寻找一种重新定位批量%%random%的方法

时间:2011-12-11 23:31:56

标签: random batch-file media filenames

我正在寻找批处理的随机函数,我可以将其添加到文件名的开头。我正在创建几千个符号链接,我打算通过在文件名的开头附加一个随机数来随机化排序结果。

我在嵌套的for循环中使用了这个函数(遍历所有子目录中的所有文件):

mklink "%LINKDIR%\%random%%%f" "%%f"

它几乎返回我想要的东西。不幸的是,每个符号链接具有相同的起始随机数。无论如何都要重新设定%random%值?

1 个答案:

答案 0 :(得分:3)

使用延迟扩展。即放

setlocal enabledelayedexpansion

在批处理文件的开头,然后使用!random!代替%random%。有关该主题的详细说明,请参阅help set

这里的要点是,当%random%循环解析时,for会扩展;因此,对于后续迭代(即当循环实际上运行时),不再有变量,只有值。这是通过延迟扩张来解决的。