无忧启动论坛

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

Bcdedit 忘记了id 怎么进行删除启动项.

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-17 19:15:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
bcdedit /delete {id} 忘记了id 要怎么删除
(注:要批处理的)



[ 本帖最后由 2011xiaochi 于 2011-3-17 19:28 编辑 ]
2#
发表于 2011-3-17 23:10:24 | 只看该作者
bcdedit查看一下不就知道了。
回复

使用道具 举报

3#
 楼主| 发表于 2011-3-18 20:18:23 | 只看该作者
原帖由 dgxhls 于 2011-3-17 23:10 发表
bcdedit查看一下不就知道了。

批理完成的,是不手工处理的。
回复

使用道具 举报

4#
发表于 2011-3-18 22:12:56 | 只看该作者
原帖由 2011xiaochi 于 2011-3-18 20:18 发表

批理完成的,是不手工处理的。

嘿嘿,按照2#所说的操作,将查得的id填入你的批后再运行,算不手工处理的不?
回复

使用道具 举报

5#
发表于 2011-3-22 09:37:47 | 只看该作者
我简单编辑了一个有选择的删除某个 id 的批处理
内容如下:
应该可以达到你的要求。中文win7环境测试成功

------------------------------------------------
@echo off
cls
setlocal ENABLEDELAYEDEXPANSION
if %1*==bcd* goto bcd
:top
cls
echo.
echo 删除 BOOTMGR BCD 启动项目
echo.
call :bcd

echo.
echo 请选择要删除的项目编号并回车确认(1.2.3.4...)_______
echo Ctrl+C 可以中断脚本
echo.

set /p p=
if %p% LSS 1 GOTO ERROR1
if %p% GTR %n% goto error1
set /a p=%p%*3-2
for /f "skip=%p% tokens=1,2" %%c in ('call %0 bcd') do (
bcdedit /delete %%d
echo 项目删除指令运行完毕!
goto end1
)

:error1
echo 输入错误,按任意键重来! && pause >nul
goto top

:bcd
set n=0
for /f "tokens=1,2*" %%c in ('bcdedit /v') do (
if %%c*==标识符* (
  set /a n=!n!+1
  echo ---!n!------------------------------------------------   
  echo   ID: %%d %%e
  )
if %%c*==description* echo 说明: %%d %%e
)
  echo ---End--------------------------------------------------
:end1

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

用 bcdedit 配合 for 实现 id + 菜单项列表 ,然后交由 用户通过  set /p  选择指定项目后 从 bcd 菜单中删除之


[ 本帖最后由 dos时代菜鸟 于 2011-3-22 11:44 编辑 ]
回复

使用道具 举报

6#
发表于 2011-3-23 11:39:51 | 只看该作者
运行后和菜鸟的显示不一样。


环境,双系统xp+win7,上面的图片是在xp下运行的,xp在C盘。
回复

使用道具 举报

7#
发表于 2011-3-23 14:02:32 | 只看该作者
请 在 中文 win7 环境运行。
很显然,你xp中运行的 bcdedit 不是 中文的。所以无法找到  bcdedit /v 命令 输入的文本流当中的 "标识符" 三个字
回复

使用道具 举报

8#
发表于 2011-3-25 12:13:41 | 只看该作者
原来的批处理在win7中文下没有问题。
我在xp下面那个bcdedit确实不是中文版的。
回复

使用道具 举报

9#
发表于 2011-3-25 12:32:12 | 只看该作者

回复 #8 freesoft00 的帖子

看看 英文 的 "标识符"  id 怎么表示。然后才可以改cmd.
回复

使用道具 举报

10#
发表于 2011-12-6 13:50:07 | 只看该作者

回复 #5 dos时代菜鸟 的帖子

能否写一个“添加”和“删除”的秕处理
回复

使用道具 举报

11#
发表于 2011-12-14 19:07:26 | 只看该作者

回复 #10 chenbaker 的帖子

添加,很简单,cmd 大概只需要6句话就可搞定。
找一下我发过类似帖子。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=167130&highlight=%2Bdos%CA%B1%B4%FA%B2%CB%C4%F1

[ 本帖最后由 dos时代菜鸟 于 2011-12-14 19:08 编辑 ]
回复

使用道具 举报

12#
发表于 2012-6-14 09:08:46 | 只看该作者

回复 #5 dos时代菜鸟 的帖子

请问:
如何不用交互式删除呢?
删除 BOOTMGR BCD 启动项目
---1------------------------------------------------
  ID: {9dea862c-5cdd-4e70-acc1-f32b344d4795}
说明: Windows Boot Manager
---2------------------------------------------------
  ID: {d2009321-6bf8-11e1-b011-a371cb679d3e}
说明: Windows 7
---3------------------------------------------------
  ID: {4addc719-b513-11e1-b0ae-005056c00008}
说明: Start Windows XP PE
---4------------------------------------------------
  ID: {4addc71a-b513-11e1-b0ae-005056c00008}
说明: Start 32Bit Windows7 PE
---5------------------------------------------------
  ID: {4addc71b-b513-11e1-b0ae-005056c00008}
说明: Start 64Bit Windows7 PE
---6------------------------------------------------
  ID: {4addc71c-b513-11e1-b0ae-005056c00008}
说明: Start Grub4DOS
---End--------------------------------------------------
请选择要删除的项目编号并回车确认(1.2.3.4...)_______
Ctrl+C 可以中断脚本

正在写一个安装卸载的批处理,遇到一点困难。。。
如:上表中的3、4、5、6项,不用交互式,直接删除,不知该怎么写。。。
谢谢!!!
回复

使用道具 举报

13#
发表于 2012-6-14 18:13:43 | 只看该作者

回复 #12 zhoubin 的帖子

如果能确定“说明” 的内容,可以编辑 直接自动删除 “说明” 对应的 id

简单写了一个如下代码,感觉可以更简洁,自己研究吧,中文 win7 测试通过。
  1. @echo off
  2. if "%~1"=="" goto error
  3. set n=0
  4. setlocal ENABLEDELAYEDEXPANSION
  5. echo 删除 %~1...检索中......
  6. for /f "delims=" %%c in ('bcdedit /v') do (
  7. set l0=%%c
  8. if "!l0:~0,3!"=="标识符" set id=!l0:~21!
  9. if "!l0:~0,11!"=="description" (
  10. set d=!l0:~24!
  11. if "!d!"=="%~1" (echo !d!:!id! & echo 找到目标...删除中...&set n=1 & bcdedit /delete !id!)
  12. )
  13. )
  14. if !n!==0 (echo. & echo 目标未找到!)
  15. goto :eof
  16. :error
  17. echo Please press the Argument %%1!
  18. echo Like bcd_d "Grub for dos"
复制代码
你可以把你要删除的 bcd 项目名称 写入一个文件 t.txt
内容如下:
  1. Start Windows XP PE
  2. Start 32Bit Windows7 PE
  3. Start 64Bit Windows7 PE
  4. Start Grub4DOS
复制代码
然后在cmd 下运行
  1. for /f "delims=" %c in (t.txt) do bcd_d "%c"
复制代码

[ 本帖最后由 dos时代菜鸟 于 2012-6-14 19:28 编辑 ]

bcd_d.JPG (17.75 KB, 下载次数: 88)

bcd_d.JPG
回复

使用道具 举报

14#
发表于 2012-6-15 11:29:10 | 只看该作者

回复 #13 dos时代菜鸟 的帖子

感谢dos大哥的回复。。。
我在32位win7下测试了一下,这个只能在cmd命令行下使用,谢谢dos大哥。。。。

捕获.JPG (139.85 KB, 下载次数: 105)

捕获.JPG
回复

使用道具 举报

15#
发表于 2014-6-30 17:00:28 | 只看该作者
这个是交互模式的,已经剔除了 Windows Boot Manager 的显示

  1. @echo off
  2. cls
  3. setlocal ENABLEDELAYEDEXPANSION
  4. if %1*==bcd* goto bcd
  5. :top
  6. cls
  7. echo.
  8. echo 删除 BOOTMGR BCD 启动项目
  9. echo.
  10. call :bcd
  11. echo.
  12. echo 请选择要删除的项目编号并回车确认(1.2.3.4...)_______
  13. echo Ctrl+C 中断脚本!
  14. echo.
  15. set/a p=0 && set /p p=
  16. if %p% EQU 99 GOTO end1
  17. if %p% LSS 1 GOTO ERROR1
  18. if %p% GTR %n% goto error1
  19. set /a p=%p%*3-2
  20. for /f "skip=%p% tokens=1,2" %%c in ('call %0 bcd') do (
  21. bcdedit /delete %%d
  22. echo 项目删除指令运行完毕!
  23. goto end1
  24. )

  25. :error1
  26. echo 输入错误,按任意键重来! && pause >nul
  27. goto top

  28. :bcd
  29. set n=0
  30. for /f "tokens=1,2*" %%c in ('bcdedit /v') do (
  31. if %%c*==标识符* (
  32.   set /a n=!n!+1
  33.   set "id=  ID: %%d %%e"
  34.   )
  35. if %%c*==description* (
  36.   if not "%%d %%e"=="Windows Boot Manager" (
  37.    echo ---!n!------------------------------------------------
  38.    echo !id!
  39.    echo 说明: %%d %%e
  40.   ) else (set n=!n!-1)
  41. )
  42. )
  43.   echo ---End--------------------------------------------------
  44. :end1

复制代码

捕获.JPG (28.68 KB, 下载次数: 71)

捕获.JPG
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-28 00:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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