无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 19183|回复: 57
打印 上一主题 下一主题

新版“Vista启动项中安装与卸载grub4dos项目的批处理”【10-22更新】

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-28 15:46:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
前两天有人询问如何卸载由我的安装批处理安装到vista启动项中的grub4dos,因此临时写了个
卸载批处理,但该批处理要求有安装时备份的bcd备份或保存的id临时文件,有一定限制。
现重写卸载批处理,并与安装批处理合并。
运行时首先判断bcd中是否已有grub4dos项目,有的话可选择“卸载”或“放弃”。没有的话就进行安装。
卸载不需要备份文件,直接处理bcd中项目,通用性好。也可适用于卸载vista启动项中的其它项目。

----------------------------------
@echo off
rem by lianjiang
COLOR f9
set vid=
set timeout=5
set gname=GRUB for DOS
set gname2=\grldr.mbr
Set TIT=在Vista启动项中安装与卸载grub4dos项目的批处理 by lianjiang
TITLE %TIT%
bcdedit >temp_bcd.txt
type temp_bcd.txt | find "Windows Boot Manager" >nul && goto bcd_1
del temp_bcd.txt >nul 2>nul
cls
echo.
echo   请以管理员身份运行。
echo.
pause
:bcd_1
type temp_bcd.txt | find "%gname2%" >nul && goto un_bcd
bcdedit  /create /d "%gname%" /application bootsector >vid.ini
for,/f,"tokens=2 delims={",%%i,In (vid.ini) Do (
                  set vida=%%i
)
for,/f,"tokens=1 delims=}",%%i,In ("%vida%") Do (
                  set vid={%%i}
)
echo %vid%>vid.ini
bcdedit  /set %vid% device partition=%systemdrive%  >nul
bcdedit  /set %vid% path %gname2% >nul
bcdedit  /displayorder %vid% /addlast >nul
bcdedit  /timeout  %timeout% >nul
if exist grldr.mbr (
         copy grldr.mbr %systemdrive%\ /y
         goto exit
) else (
echo.
echo   稍后请自行把grldr.mbr拷贝到%systemdrive%\根目录
echo.
PING/n 5 127.1>NUL
Goto exit
)
:un_bcd
cls
echo.
echo   Vista的BCD启动项中存在grub4dos的项目["%gname2%"]。
echo   ==============================================
echo.
set un_bcd=
Set /P un_bcd=  是否需要卸载grub4dos项目 ?[y/是  n/否]:
If %un_bcd%#==y# goto un_bcd_1
Goto exit
:un_bcd_1
chcp 437
for /f "tokens=1 delims=:" %%i In ('findstr /n %gname2%  temp_bcd.txt') Do (
                 Set nid=%%i
)
set /a nid=%nid%-2
findstr /n identifier temp_bcd.txt>temp_bcd1.txt
for /f "tokens=2" %%i In ('findstr /n %nid%:identifier temp_bcd1.txt') Do (
          echo %%i>vid.ini
)
for,/f,"tokens=1",%%i,In (vid.ini) Do (
                 set vid=%%i
)
bcdedit /delete %vid% /cleanup >nul
bcdedit /timeout   %timeout% >nul
bcdedit >temp_bcd.txt
type temp_bcd.txt | find "%gname2%" >nul && goto un_bcd
if exist %systemdrive%\grldr.mbr (
      attrib -h -s -r %systemdrive%\grldr.mbr >nul
      del %systemdrive%\grldr.mbr >nul
)

:exit
del temp_bcd.txt >nul 2>nul
del temp_bcd1.txt >nul 2>nul
del vid.ini >nul 2>nul

[ 本帖最后由 lianjiang 于 2009-11-17 08:44 编辑 ]
57#
发表于 2009-11-28 16:51:55 | 只看该作者
(已解决)今天安装测试后,发觉卸载不了。具体看图乱码不知道什么意思!貌似两个是一样的。


[ 本帖最后由 lc1212 于 2009-11-30 09:16 编辑 ]
回复

使用道具 举报

56#
发表于 2009-11-4 19:19:00 | 只看该作者
我以前试过全部vid.ini替换为%systemroot%\vid.ini 可是不成功

刚才试了下lianjiang大这个原版的 是可以的

我猜可能是因为我对vid.ini的属性设置影响到的(attrib) 我再试试看


确实可以了 谢谢指点

[ 本帖最后由 x.Nichdlas 于 2009-11-4 19:28 编辑 ]
回复

使用道具 举报

55#
 楼主| 发表于 2009-11-4 18:36:31 | 只看该作者
指向%temp%。
如 >%temp%\vid.ini
回复

使用道具 举报

54#
发表于 2009-11-4 17:28:39 | 只看该作者
我在利用lianjiang大的这个方法中遇到一点困难

能有啥方法不创建临时文件temp_bcd.txt、temp_bcd2.txt、vid.ini吗?
如果我在光盘一类的不可写介质运行这样的批咋办?

忘lianjiang大指点一二

[ 本帖最后由 x.Nichdlas 于 2009-11-4 17:31 编辑 ]
回复

使用道具 举报

53#
发表于 2009-10-30 15:41:58 | 只看该作者

回复 #52 lianjiang 的帖子

呵呵 回家我试试看 不需要保留vid.ini就最好了
回复

使用道具 举报

52#
 楼主| 发表于 2009-10-30 10:42:36 | 只看该作者
这个问题早就发现,GGhost一键恢复也不会出现此类问题。
考虑到这个帖子主要是提供一种处理思路,因此也就不改这个帖子了。
回复

使用道具 举报

51#
 楼主| 发表于 2009-10-30 10:39:48 | 只看该作者
原帖由 x.Nichdlas 于 2009-10-30 10:23 发表
貌似最后一行的del vid.ini >nul 2>nul应该删掉 不然不能卸载


1,vid.ini是不需要的。卸载时会从bcd中确定项目的id。
2,由于这是2年前写的,由于当时是在英文系统下测试的,卸载时有个用于判断的字符选择(处理)不当,在中文系统下会无法找到id号,造成无法卸载。

解决方法有多种,最简单的就是在批处理卸载开始处加上一行
chcp 437
这样就没问题了。
回复

使用道具 举报

50#
发表于 2009-10-30 10:23:48 | 只看该作者
貌似最后一行的del vid.ini >nul 2>nul应该删掉 不然不能卸载
回复

使用道具 举报

49#
发表于 2009-10-30 10:23:42 | 只看该作者
貌似最后一行的del vid.ini >nul 2>nul应该删掉 不然不能卸载
回复

使用道具 举报

48#
发表于 2009-10-30 08:29:18 | 只看该作者
收藏了,以后方便时使用,多谢分享!!!
回复

使用道具 举报

47#
发表于 2009-8-15 16:06:33 | 只看该作者
非常不错的批,学习了。
回复

使用道具 举报

46#
发表于 2009-7-7 20:32:10 | 只看该作者
这个不太会用,准备先用你的bat
回复

使用道具 举报

45#
发表于 2008-10-5 22:39:40 | 只看该作者
好东西,支持~~~~~~~~~!
回复

使用道具 举报

44#
发表于 2008-9-7 00:45:34 | 只看该作者
比用bcdedit方便些,谢谢
回复

使用道具 举报

43#
发表于 2008-6-22 01:27:48 | 只看该作者
又有好东西,支持~~~~~~~
回复

使用道具 举报

42#
发表于 2008-6-21 11:24:59 | 只看该作者
谢谢。   :)   收藏了
回复

使用道具 举报

41#
 楼主| 发表于 2007-11-21 14:28:17 | 只看该作者
本来设置隐藏,仅是为了使帖子不至于沉得太快。
看来还是取消隐藏限制算了。
回复

使用道具 举报

40#
发表于 2007-11-21 13:11:29 | 只看该作者
原帖由 dato 于 2007-11-21 01:10 PM 发表
11111111111111111111111

请勿恶意灌水。
回复

使用道具 举报

39#
发表于 2007-11-21 13:10:11 | 只看该作者
11111111111111111111111

评分

参与人数 1无忧币 -100 收起 理由
打狗协会理事 -100 恶意灌水

查看全部评分

回复

使用道具 举报

38#
发表于 2007-11-21 05:09:36 | 只看该作者
牛人,设隐藏逼我等回帖。
回复

使用道具 举报

37#
发表于 2007-11-8 15:38:52 | 只看该作者
先顶一下,再来试试。
回复

使用道具 举报

36#
发表于 2007-11-8 10:31:27 | 只看该作者
厉害,厉害。谢谢楼主了。
回复

使用道具 举报

35#
发表于 2007-11-8 09:16:11 | 只看该作者
:D :D :D :D
回复

使用道具 举报

34#
发表于 2007-11-6 11:16:48 | 只看该作者
支持~~~~~~~~~:)
回复

使用道具 举报

33#
发表于 2007-11-5 22:36:38 | 只看该作者
vista越来越流行,这也是该考虑的了
回复

使用道具 举报

32#
发表于 2007-10-22 14:13:48 | 只看该作者
研究研究  恩 恩
回复

使用道具 举报

31#
发表于 2007-10-21 14:16:50 | 只看该作者
好東西學習了
vista是不是能全能相容了 且看這了 先收
回复

使用道具 举报

30#
发表于 2007-10-21 09:43:44 | 只看该作者
好东西,支持~~~~~~~~~!
回复

使用道具 举报

29#
发表于 2007-10-9 08:50:58 | 只看该作者
学习了哈,不过有点看不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-18 15:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表