无忧启动论坛

标题: 新版“Vista启动项中安装与卸载grub4dos项目的批处理”【10-22更新】 [打印本页]

作者: lianjiang    时间: 2007-8-28 15:46
标题: 新版“Vista启动项中安装与卸载grub4dos项目的批处理”【10-22更新】
前两天有人询问如何卸载由我的安装批处理安装到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 编辑 ]
作者: hytmtet    时间: 2007-8-28 16:35
哇~沙发
支持一个
作者: 超无限    时间: 2007-8-28 19:47
板凳有没有一个啊?呵呵。
作者: mmBlue    时间: 2007-8-28 20:03
支持!~

暂不用VISTA,收藏以后用
作者: wangjf    时间: 2007-8-28 21:42
Lian大象很勤奋呀:lol
作者: ali88home    时间: 2007-8-28 23:07
又有新花样,等我下次用:victory:
作者: barton    时间: 2007-8-29 08:25
俺机器的配置,要用vista很难


但是看看总是没有坏处的   :lol
作者: wang6610    时间: 2007-8-29 08:38
比我勤奋..........
作者: kashitsuu    时间: 2007-9-6 22:18
好东西,支持~~~~~~~~~!
作者: yuh    时间: 2007-9-8 14:25
又有新花样,等我下次用
作者: l123456789    时间: 2007-9-8 17:42
好东西,支持~~~~
作者: ycool1984    时间: 2007-9-8 20:34
收藏以后用
作者: hjm6624669    时间: 2007-9-9 03:40
暂不用VISTA,收藏以后用.
作者: oolongtea    时间: 2007-9-9 21:27
又有新花样,kankan
作者: Webdiy    时间: 2007-9-9 22:14
很好,明天试一下看,谢谢
作者: Giorno    时间: 2007-9-9 22:16
的確應該這樣才完全.vista實在太難搞了
作者: zts59    时间: 2007-9-10 10:41
关注很久了,看看,:) :) ,等用上VISTA了,我也试试
作者: shuini    时间: 2007-9-10 19:03
总算搜到了,正准备装呢。
作者: keygen    时间: 2007-9-10 19:26
vista就靠aero吸引眼球,垃圾一堆…
作者: tegl    时间: 2007-9-10 22:43
收藏以后用,研究一下
作者: w352864    时间: 2007-9-17 15:30
看看 ,怎么样
呵呵,好东西
作者: haonan    时间: 2007-9-17 22:48
收一个,以后用得着;P
作者: winderp    时间: 2007-9-17 22:56
哇 好东东 一定要支持
作者: laozhao    时间: 2007-9-18 13:55
晕,还要回复才能看。:Q :Q :Q
作者: lianjiang    时间: 2007-9-18 14:07
原帖由 laozhao 于 2007-9-18 01:55 PM 发表
晕,还要回复才能看。:Q :Q :Q

只是不想沉得太快了。
作者: osiku    时间: 2007-9-22 15:58
:hug: :victory: :L :$ :'( :D :o :$ :@ :)
作者: xinpoh    时间: 2007-10-6 10:36
支持!~

收藏以后用
作者: SmartChild    时间: 2007-10-8 21:56
需要ing。。。
作者: chenshipeng    时间: 2007-10-9 08:50
学习了哈,不过有点看不懂
作者: xiao9246    时间: 2007-10-21 09:43
好东西,支持~~~~~~~~~!
作者: ten10    时间: 2007-10-21 14:16
好東西學習了
vista是不是能全能相容了 且看這了 先收
作者: 风沙星辰    时间: 2007-10-22 14:13
研究研究  恩 恩
作者: freesoft00    时间: 2007-11-5 22:36
vista越来越流行,这也是该考虑的了
作者: jm6275680    时间: 2007-11-6 11:16
支持~~~~~~~~~:)
作者: 神气的疯子    时间: 2007-11-8 09:16
:D :D :D :D
作者: Alwayshope    时间: 2007-11-8 10:31
厉害,厉害。谢谢楼主了。
作者: 想傲江湖    时间: 2007-11-8 15:38
先顶一下,再来试试。
作者: wuxj    时间: 2007-11-21 05:09
牛人,设隐藏逼我等回帖。
作者: dato    时间: 2007-11-21 13:10
11111111111111111111111
作者: dgxhls    时间: 2007-11-21 13:11
原帖由 dato 于 2007-11-21 01:10 PM 发表
11111111111111111111111

请勿恶意灌水。
作者: lianjiang    时间: 2007-11-21 14:28
本来设置隐藏,仅是为了使帖子不至于沉得太快。
看来还是取消隐藏限制算了。
作者: Allreal    时间: 2008-6-21 11:24
谢谢。   :)   收藏了
作者: zspifeng    时间: 2008-6-22 01:27
又有好东西,支持~~~~~~~
作者: 玄天    时间: 2008-9-7 00:45
比用bcdedit方便些,谢谢
作者: dwch    时间: 2008-10-5 22:39
好东西,支持~~~~~~~~~!
作者: gulch    时间: 2009-7-7 20:32
这个不太会用,准备先用你的bat
作者: lrbin50    时间: 2009-8-15 16:06
非常不错的批,学习了。
作者: tonny2911    时间: 2009-10-30 08:29
收藏了,以后方便时使用,多谢分享!!!
作者: x.Nichdlas    时间: 2009-10-30 10:23
貌似最后一行的del vid.ini >nul 2>nul应该删掉 不然不能卸载
作者: x.Nichdlas    时间: 2009-10-30 10:23
貌似最后一行的del vid.ini >nul 2>nul应该删掉 不然不能卸载
作者: lianjiang    时间: 2009-10-30 10:39
原帖由 x.Nichdlas 于 2009-10-30 10:23 发表
貌似最后一行的del vid.ini >nul 2>nul应该删掉 不然不能卸载


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

解决方法有多种,最简单的就是在批处理卸载开始处加上一行
chcp 437
这样就没问题了。
作者: lianjiang    时间: 2009-10-30 10:42
这个问题早就发现,GGhost一键恢复也不会出现此类问题。
考虑到这个帖子主要是提供一种处理思路,因此也就不改这个帖子了。
作者: x.Nichdlas    时间: 2009-10-30 15:41
标题: 回复 #52 lianjiang 的帖子
呵呵 回家我试试看 不需要保留vid.ini就最好了
作者: x.Nichdlas    时间: 2009-11-4 17:28
我在利用lianjiang大的这个方法中遇到一点困难

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

忘lianjiang大指点一二

[ 本帖最后由 x.Nichdlas 于 2009-11-4 17:31 编辑 ]
作者: lianjiang    时间: 2009-11-4 18:36
指向%temp%。
如 >%temp%\vid.ini
作者: x.Nichdlas    时间: 2009-11-4 19:19
我以前试过全部vid.ini替换为%systemroot%\vid.ini 可是不成功

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

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


确实可以了 谢谢指点

[ 本帖最后由 x.Nichdlas 于 2009-11-4 19:28 编辑 ]
作者: lc1212    时间: 2009-11-28 16:51
(已解决)今天安装测试后,发觉卸载不了。具体看图乱码不知道什么意思!貌似两个是一样的。


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




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