无忧启动论坛

标题: 问题,如何让bat在Grub4Dos下运行 [打印本页]

作者: 2010mikedy    时间: 2010-11-20 17:37
标题: 问题,如何让bat在Grub4Dos下运行
我写了一个Bat,我希望能下Grub4Dos下直接运行。
但是怎么写都不对
最后我查到一个方法:把Bat做成Img然后再Menu.gz内输入引导IMG的就行了
问题我现在不明白为什么无法载入img
我想是IMG制作出问题了,但是这IMg怎么制作,有人知道吗
作者: my9823    时间: 2010-11-20 17:49
bat要在grub4dos里运行?????
难道我已经穿越时空了么?
我老了,只听说过程式菜单,其他的没见过!@
作者: 2010mikedy    时间: 2010-11-20 17:52
标题: 回复 #2 my9823 的帖子
是这样的,我写了一个bat文件,在winpe下双击运行可以刷新BIOS
但是我想在grub4dos启动的时候作为Menu的其中一项选择
这样就能直接运行bat而不进入windows
网上的意思就是,学PQ那种
直接在Menu里面写一个引导PQ的IMG
然后IMG里面包含这个bat.
之后在Menu敲击回车的时候运行PQ
这个同理。
作者: my9823    时间: 2010-11-20 18:11
修改菜单内置,干脆找个img,增删一下,修改它的autoexec.bat,保存,gizp -9压缩成.gz文件!
作者: sratlf    时间: 2010-11-20 21:53
确实已经支持bat了  只不过bat需要首行为 !BAT   第二行开始才是正常grub命令
作者: 2010mikedy    时间: 2010-11-21 09:13
标题: 回复 #4 my9823 的帖子
你這樣我還是不懂原理啊,事情就難以順著自己的思路走
作者: 2010mikedy    时间: 2010-11-21 09:15
标题: 回复 #5 sratlf 的帖子
那該如何寫呢?

能不能直接寫入Menu裏面的

就是

title 一鍵刷新
!bat
作者: sratlf    时间: 2010-11-21 10:44
需要看你批处理是什么内容,要知道grub的批处理执行都是grub命令,你说的一键刷新bios应该不太可能
作者: sensual6891    时间: 2010-11-21 11:00
支持BAT了~!可不知道能不能用写好的批处理直接跳回到第一级初始菜单呢?很好奇!不知道在IMG文件里加入GRLDR是否能再次回来
作者: sratlf    时间: 2010-11-21 11:04
标题: 回复 #9 sensual6891 的帖子
这个问题不用批处理都能解决,当然仅限grub一启的情况,最简单的  configfile (md)4+8
作者: sratlf    时间: 2010-11-21 11:20
批处理的问题需要使用WENV  可以看下bbs.wuyou.net/forum.php?mod=viewthread&tid=159851这篇帖子的2#关于read命令的说明

最简单的例子

  1. title run bat
  2. WENV read /TEST.BAT
复制代码

TEST.BAT内容如下

  1. !BAT
  2. WENV echo This is a test for bat !
复制代码

执行下就能看到结果了
作者: 2010mikedy    时间: 2010-11-21 11:34
标题: 回复 #8 sratlf 的帖子
但是一鍵GHOST又可以?我相信裏面使用了相同的命令
至少在MSDOS下是可以手動完成的,而我這個命令也是可以在MSDOS下手動完成的
作者: 2010mikedy    时间: 2010-11-21 11:38
原帖由 sratlf 于 2010-11-21 11:20 发表
批处理的问题需要使用WENV  可以看下bbs.wuyou.net/forum.php?mod=viewthread&tid=159851这篇帖子的2#关于read命令的说明

最简单的例子

title run bat
WENV read /TEST.BAT

TEST.BAT内容如下

!BAT
WENV ech ...



感激sratlf的幫忙!
作者: 2010mikedy    时间: 2010-11-22 12:38
标题: Grub4下运行bat (非DOS或WIN下的bat)
几天前,我提出一个了一个问题:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=181436&extra=page%3D1

谢谢论坛里面的大哥帮忙解困,但仍旧无法解决我的问题

在这先谢谢sratlf 大大,你的帮助让我懂得助人为快乐之本。

其后谢谢 QQ: 51461981的大哥,我忘记你论坛的名称了,抱歉!

但是谢谢你不厌其烦的帮助我

---------------------------------------------------------------------------------------------------

好了,闲话休提

其实这个也是一个很简单的东西

就是去下载一个MSDOS的软盘,格式为IMG

然后打开

在autoexec.bat最后一行写上 Call XXX.bat(XXX为你的bat名称)

最后把你要运行的bat和修改好的autoexec.bat加入下载好的MSDOS的IMG里面

(不知为何DOS的IMG不能提取再打包,所以我最后是通过添加的方式)

最后在menu里面添加了以后

你就会发现会自动进入DOS环境,然后自动运行bat了

这是小菜鸟的一点点心得不敢私藏,如果各位大哥有更好的方法欢迎赐教。

[ 本帖最后由 sratlf 于 2010-11-22 23:22 编辑 ]
作者: sratlf    时间: 2010-11-22 13:06
标题: 回复 #1 2010mikedy 的帖子
有件事一直想说些下  就是gurb4dos运行的批处理和win或dos下的批处理不同  名字都是批处理  但grub4dos只能处理由gurb语句组成的批处理

可以看下增强版WENV的开发则tuxw的一个bat例子


  1. !BAT 获取 G4D_DISK 指定硬盘的活动分区号与最后分区号

  2. :成功则生成以下4个变量
  3. WENV reset GP_G4D_A ]]] reset GP_G4D_L ]]] reset GP_GH_A ]]] reset GP_GH_L

  4. :目标硬盘
  5. WENV get G4D_DISK ]]| echo variable G4D_DISK not found ]]] call kernel
  6. WENV call cat --length=0 (hd${G4D_DISK})+1 ]]| echo (hd${G4D_DISK}) not found ]]] call kernel

  7. :硬盘分区信息
  8. WENV call geometry (hd${G4D_DISK}) | WENV set GP_G4D_A= && WENV set GP_G4D_L=${GP_G4D_A}

  9. :截取结果
  10. WENV check "active"<-"${GP_G4D_A}" ]]& set GP_G4D_A=${GP_G4D_A%%, active} ]]] set GP_G4D_A=${GP_G4D_A## }
  11. WENV check "num: "<-"${GP_G4D_L}" ]]& set GP_G4D_L=${GP_G4D_L##num: } ]]] set GP_G4D_L=${GP_G4D_L%%,}

  12. :转换为GHOST格式
  13. WENV get GP_G4D_A ]]& call exec DISKID (hd${G4D_DISK},${GP_G4D_A}) ]]& set GP_GH_A=*0x4FF00$
  14. WENV get GP_G4D_L ]]& call exec DISKID (hd${G4D_DISK},${GP_G4D_L}) ]]& set GP_GH_L=*0x4FF00$

复制代码

作者: 2010mikedy    时间: 2010-11-22 14:38
标题: 回复 #2 sratlf 的帖子
感觉还是好难懂,没有例子的话........

基于时间成本来计算的话,还是用回笨方法吧
作者: sratlf    时间: 2010-11-22 16:23
标题: 回复 #4 fengxi 的帖子
LZ是想在gurb4dos环境下运行dos或win的批处理。。。。。。  这就是问题一直没有解决的原因
作者: xianglang    时间: 2010-11-22 19:28
我还真的以为G4D可以直接运行BAT批处理了呢,原来不是……
作者: lianjiang    时间: 2010-11-22 20:14
标题最好改一改,以免让进来的人大失所望,呵呵。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3