中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » windows 2000/xp/2003/vista的启动项中安装/卸载grub4dos的脚本
作者:
标题: windows 2000/xp/2003/vista的启动项中安装/卸载grub4dos的脚本 上一主题 | 下一主题
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『楼 主』:  windows 2000/xp/2003/vista的启动项中安装/卸载grub4dos的脚本

windows 2000/xp/2003/vista的启动项中安装/卸载grub4dos的脚本

说明:
1,以下安装/卸载脚本,简化自本人的“GGhost一键恢复2008”。
2,支持windows 2000/xp/2003/vista。支持任意语种的系统。
3,启动项中显示名称为“Start Grub4DOS”,延时3秒,请自行修改。
4,去掉了所有文件的复制,请自行复制grldr.mbr和grldr及其它所需文件。
5, windows 2000/xp/2003下使用了第三方工具inifile.exe。(要求放到d:\ggho下)
  (需要的可从网盘下载:http://lianjiang2004.ys168.com/

本人不善长批处理,所示脚本,仅供参考。
http://gghost.uu1001.com/
=============================

@Echo Off
if not %os%.==Windows_NT. goto not_nt
cls
mode con: cols=76 lines=26
Set TT=安装程序  by lianjiang
COLOR f9
TITLE %TT%
set gname=Start Grub4DOS
set gname2=\grldr.mbr
set winver=
set ggpath6=
set ggpath0=d:\ggho

set vid=
set timeout=3
ver|find /i " 5.1">nul &&set winver=winnt&&goto sub_001
ver|find /i " 6.0">nul &&set winver=vista&&goto sub_003
ver|find /i " 5.0">nul &&set winver=winnt&&goto sub_001
ver|find /i " 5.2">nul &&set winver=winnt&&goto sub_001
:not_nt
cls
echo.
echo  很抱歉,本软件不能使用于非Windows 2k/xp/2k3/vista环境。
PING/n 5 127.1>NUL
Goto Exit
:sub_001
set ggpath6=
for %%B in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
    if exist %%B\boot.ini set ggpath6=%%B&&goto inst   
)
goto inst
:sub_003
set ggpath6=%systemdrive%
:inst
if not %winver%#==winnt# goto vista_1
:winnt_1
attrib %ggpath6%\boot.ini -r -h -s >nul
if not exist %ggpath6%\g_boot.ini  Copy %ggpath6%\boot.ini %ggpath6%\g_boot.ini /y >nul
%ggpath0%\inifile %ggpath6%\boot.ini [boot loader] timeout=%timeout% >nul
%ggpath0%\inifile %ggpath6%\boot.ini [operating systems] %ggpath6%%gname2%="%gname%" >nul
attrib %ggpath6%\boot.ini +r +h +s >nul
attrib %ggpath6%\g_boot.ini +r +h +s >nul
goto exit
:vista_1
if not exist %ggpath0%\nul md %ggpath0% >nul
bcdedit >%ggpath0%\temp_bcd.txt
type %ggpath0%\temp_bcd.txt | find "%gname%" >nul && goto vista_bcd
bcdedit /export "%ggpath0%\Bcd_Backup" >nul
bcdedit /create /d "%gname%" /application bootsector >%ggpath0%\vid.ini
for,/f,"tokens=2 delims={",%%i,In (%ggpath0%\vid.ini) Do (
    set vida=%%i
)
for,/f,"tokens=1 delims=}",%%i,In ("%vida%") Do (
    set vid={%%i}
)
echo %vid%>%ggpath0%\vid.ini
bcdedit /set %vid% device partition=%ggpath6%  >nul
bcdedit  /set %vid% path %gname2% >nul
bcdedit  /displayorder %vid% /addlast >nul
:vista_bcd
bcdedit  /timeout  %timeout% >nul
:exit
cls
echo.
echo 安装完成。
echo.
echo 请自行复制grldr.mbr和grldr到%ggpath6%
Echo.
PING/n 3 127.1>NUL

=============================
@Echo Off
if not %os%.==Windows_NT. goto not_nt
cls
mode con: cols=76 lines=26
Set TT=卸载程序  by lianjiang
COLOR f9
TITLE %TT%
set winver=
set ggpath6=
set ggpath0=d:\ggho
set vid=
set timeout=3
ver|find /i " 5.1">nul &&set winver=winnt&&goto sub_001
ver|find /i " 6.0">nul &&set winver=vista&&goto sub_003
ver|find /i " 5.0">nul &&set winver=winnt&&goto sub_001
ver|find /i " 5.2">nul &&set winver=winnt&&goto sub_001
:not_nt
cls
echo.
echo  很抱歉,本软件不能使用于非Windows 2k/xp/2k3/vista环境。
PING/n 5 127.1>NUL
Goto Exit
:sub_001
set ggpath6=
for %%B in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
    if exist %%B\boot.ini set ggpath6=%%B&&goto uninst_01   
)
goto uninst_01
:sub_003
set ggpath6=%systemdrive%
:uninst_01
if not %winver%#==winnt# goto uninst_4
for,/f,"tokens=1",%%i,In (%ggpath0%\vid.ini) Do (
                set vid=%%i
)
bcdedit /delete %vid% /cleanup >nul
bcdedit /timeout  %timeout% >nul
goto uninst_4a
:uninst_4
attrib -h -r -s %ggpath6%\boot.ini  >nul
if exist %ggpath6%\boot.ggh attrib -h -r -s %ggpath6%\boot.ggh >nul&&del %ggpath6%\boot.ggh >nul
ren %ggpath6%\boot.ini boot.ggh >nul
findstr /b /i /v /c:"%ggpath6%\grldr" %ggpath6%\boot.ggh>%ggpath6%\boot.ini
bootcfg /timeout %timeout%  >nul
attrib +h +r +s %ggpath6%\boot.ini  >nul
del %ggpath6%\boot.ggh  >nul
if exist %ggpath6%\g_boot.ini attrib %ggpath6%\g_boot.ini -r -h -s >nul&&del %ggpath6%\g_boot.ini >nul
:uninst_4a
cls
echo.
echo 卸载完成。
Echo.
PING/n 3 127.1>NUL



Windows 一键还原
http://www.yjhy.com
2008-2-20 09:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
barton
中级用户





积分 480
发帖 197
注册 2006-9-20
来自 黄冈
状态 离线
『第 2 楼』:  

支持一下

看到批处理里的if for就头晕

o(∩_∩)o...

2008-2-20 12:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
newswan
初级用户





积分 70
发帖 29
注册 2006-1-3
状态 离线
『第 3 楼』:  

支持,慢慢看下。。。

2008-2-22 21:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 4 楼』:  

支持的人也太少了点,呵呵。



Windows 一键还原
http://www.yjhy.com
2008-2-23 10:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
WLDNA
新手上路





积分 10
发帖 5
注册 2007-4-14
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by lianjiang2004 at 2008-2-23 10:44 AM:
支持的人也太少了点,呵呵。

o(∩_∩)o...
技术嘛,肯定不是那么好懂的,自然就少了点啊,呵呵
辛苦了,偶虽然菜,但是也要把他啃下来
呵呵

2008-2-23 17:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hnfeng
初级用户





积分 89
发帖 36
注册 2007-12-20
状态 离线
『第 6 楼』:  

INIFILE 使用的好!!!
  (之前发现DOS71安装软盘中有这个工具,从来没留意过它,原来它功能不小呢。谢谢楼主!)

本来我想做一个通用于 DOS、WIN98、NT、ME、2000、XP、2003、Vista 的添加 GRUB4DOS 菜单的批处理,看来 由楼主来完成是最好的了。


看的眼花........  

楼主的程序中好像有一小bug:

if not %os%.==Windows_NT. goto not_nt

:not_nt
cls
echo.
echo  很抱歉,本软件不能使用于非Windows 2k/xp/2k3/vista环境。
PING/n 5 127.1>NUL
Goto Exit

:exit
cls
echo.
echo 安装完成。
echo.
echo 请自行复制grldr.mbr和grldr到%ggpath6%
Echo.
PING/n 3 127.1>NUL

这样以来,即使判断出系统不符合要求,仍然会显示“安装成功。。。”的字样。


另外好像还有一个小问题:
没有判断电脑中最高操作系统(我迟迟没做成功就因为这个原因)并做相应处理。
例如:电脑中安装有 XP 和 Vista,运行上述程序时,如果用户是在 XP 中,程序会继续并把GRUB4DOS菜单安装在 boot.ini 中,而不是 Vista 的启动菜单中。这样也许会有点点不妥。


(期待楼主能做个通用的……)

2008-2-25 17:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 7 楼』:  

1,关于判断非nt系统的提示问题,这里确实是个bug,写时没注意,谢谢指正。
2,我的处理方法应该没有什么问题。判断当前系统,并进行安装是合理的。
3,至于支持dos,98,me等,个人以为,基本没有什么意义。



Windows 一键还原
http://www.yjhy.com
2008-2-25 18:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hnfeng
初级用户





积分 89
发帖 36
注册 2007-12-20
状态 离线
『第 8 楼』:  



  Quote:
2,我的处理方法应该没有什么问题。判断当前系统,并进行安装是合理的。

当电脑中最高系统是 VISTA, 但是在 XP 中向 BOOT.INI 添加 GRUB4DOS 菜单后,这个菜单会同时出现在 VISTA 和 XP(BOOT.INI) 的菜单中,我个人感觉这样不爽,或者说不完美。

  Quote:
3,至于支持dos,98,me等,个人以为,基本没有什么意义。

确实如你所说,我也觉得没什么意义。

2008-2-27 15:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 9 楼』:  

这种装法的双系统,假如对出现两个选项感觉不舒服的话,vista下可不必安装。



Windows 一键还原
http://www.yjhy.com
2008-2-27 16:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 10 楼』:  

我没装一键恢复2008,运行后发现一个小问题, 如下

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\mxldr=MaxDOS v5.8s
C:\MAOTAO\MAOTAO.BIN="WinPE  By: 老毛桃"
c:\grldr= grub 4d
c:\CGDos=Auto Ghost 1.


你会发现 c:\grldr= grub 4d  差几个字, 不知道是不是个别现象,



2008-2-27 18:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 11 楼』:  

第一次看到出现这种情况的报告。似乎没有理由出现,呵呵。
不妨在cmd下手动输入添加grldr的那句看看。
看来你是自己修改过了的,不知修改了哪些地方。



Windows 一键还原
http://www.yjhy.com
2008-2-27 18:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yaoxin1588
初级用户





积分 48
发帖 23
注册 2008-1-10
状态 离线
『第 12 楼』:  

grldr同破解VISTA文件同名。

2008-3-8 19:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 13 楼』:  

这不是grub的问题,而是破解者随意使用文件文件名的问题。



Windows 一键还原
http://www.yjhy.com
2008-3-8 19:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: