|
自己做的随机背景批处理,让大家见笑了,没什么水平,主要是想多做几个背景都能用得上,用到wenv命令,wenv命令需要支持随机数,批处理如下
!BAT:参数1为wenv命令地址,参数2为图片路径(完整路径减去图片后面的数字),参数3为图片数量(0开始,1,2.....),例如 /grub/Ransplash.bat /grub/drive/wenv /grub/splash/message 128
##:begin
%1 set messstr=%2
%1 set num=%3
%1 ${@RANDOM}
%1 set ran=${@RANDOM}
%1 calc res=${ran}/${num}*${num}
%1 calc res=${ran}-${res}
:: if not exist ${messstr}${res} && goto :begin ::这里判断文件存在有问题
%1 echo now Loading ${messstr}${res}
%1 call gfxmenu ${messstr}${res}
在lst文件中加上/grub/Ransplash.bat /grub/drive/wenv /grub/splash/message 128
/grub/Ransplash.bat是上面批处理文件名和位置.
需要在第二个参数的路径下准备随机的背景图片如下命令(为了看清楚,我写完整路径)
/grub/splash/message0
/grub/splash/message1
/grub/splash/message2
这样,还可以更多,如果是这样,第三个参数应该是3,因为一共是三个嘛,但应该可以自动判断以/grub/splash/message类的文件个数,不用最后一个参数,我是菜鸟不会写
经实验第一个${@RANDOM} 经常是8209这个固定值(至少绝大多数是这个)
所以先去掉第一次调用的${@RANDOM},用下面的代替(::begin后面的第三行)(但有的版本grub不支持这种写法,有的版本支持)
%1 ${@RANDOM}
这里有几个问题没解决,希望看到此帖的高手请教:
1.怎么不显示wenv的屏幕显示信息,例如set后面的都显示出来了
2.${@RANDOM}如何让第一次不显示8209
3.如何判断带有变量的文件是否存在,如上面的有问题的那句if not exist ${messstr}${res} && goto :begin
[ 本帖最后由 ducs 于 2011-7-14 16:59 编辑 ] |
|