|
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
状态 离线
|
|
2008-2-22 21:38 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
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
状态 离线
|
|
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
状态 离线
|
|
2008-3-8 19:41 |
|