我正在寻找批处理的随机函数,我可以将其添加到文件名的开头。我正在创建几千个符号链接,我打算通过在文件名的开头附加一个随机数来随机化排序结果。
我在嵌套的for循环中使用了这个函数(遍历所有子目录中的所有文件):
mklink "%LINKDIR%\%random%%%f" "%%f"
它几乎返回我想要的东西。不幸的是,每个符号链接具有相同的起始随机数。无论如何都要重新设定%random%值?
答案 0 :(得分:3)
使用延迟扩展。即放
setlocal enabledelayedexpansion
在批处理文件的开头,然后使用!random!
代替%random%
。有关该主题的详细说明,请参阅help set
。
这里的要点是,当%random%
循环解析时,for
会扩展;因此,对于后续迭代(即当循环实际上运行时),不再有变量,只有值。这是通过延迟扩张来解决的。