|
本帖最后由 dos时代菜鸟 于 2018-3-10 21:14 编辑
发俩脚本,活跃下气氛。
脚本需要 bcdedit.exe
bcd_delete.cmd
- @echo off && setlocal ENABLEDELAYEDEXPANSION
- rem 附带参数用来指定 要操作的 bcd 文件,如果空,表示对当前bcd操作
- title "删除 BCD 启动项目"
- color 0a
- mode con: lines=40
- :top0
- set bcd=
- if not *%1==* set bcd=%1
- if *%bcd%==* (set /p bcd=请输入bcd位置,如:C:\BOOT\BCD,回车确认,x退出,默认当前BCD:)
- if *%bcd%==* (echo BCD=当前 & bcdedit /v >nul 2>nul ) else (echo BCD=%bcd% & bcdedit /store %bcd% /v >nul 2>nul)
- if errorleveL 1 (echo BCD错误,按任意键重新选择 & PAUSE >NUL & goto top0 )
- :top
- if not *%bcd%*==** set bcd_p=/store %bcd%
- :top2
- call :bcd >%temp%\bcd_temp.txt
- cls
- echo.
- echo 删除 BCD 启动项目 %bcd%
- echo.
- type %temp%\bcd_temp.txt
- echo.
- set p=
- set /p p=请选择要删除的项目编号并回车确认(1.2.3.4...,x退出)_______
- if /i *%p%*==*x* goto end1
- for /L %%t in (1,1,%n%) do (if "%%t"=="%p%" goto del)
- echo 录入错误,按任意键重新来过. & pause>nul
- goto top2
- :del
- set /a p=%p%*3+1
- for /f "skip=%p% tokens=1*" %%c in (%temp%\bcd_temp.txt) do (
- echo 正在删除 %%d
- bcdedit %bcd_p% /delete %%d
- echo 项目删除指令运行完毕!按任意键继续....&& pause>nul
- goto top2
- )
- :error1
- echo 输入错误,按任意键重来! && pause >nul
- goto top
- :bcd
- set n=-1
- for /f "tokens=1*" %%c in ('bcdedit %bcd_p% /v') do (
- set "id=%%d"
- if "!id:~0,1!"=="{" set value=%%d
- if %%c*==description* (
- set /a n=!n!+1
- echo -- !n! -----------------------------------------------
- echo ID: !value!
- echo 说明: %%~d
- )
- )
- echo ---End--------------------------------------------------
- exit /b
- :end1
复制代码 bcd_delete2.cmd
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- REM 根据BCD菜单项目名称 删除菜单项,项目名称不能包含 引号,& 。。。等特殊字符
- rem 第一参数:项目名称 应用双引号包裹
- rem 第二参数:可选,用来指明要操作的 bcd 路径,如果空,表示对当前bcd 进行操作。
- color 0a
- if *%1*==** goto error1
- set "menu_title=%~1"
- if not "%2"=="" set bcd_p=/Store %2
- set n=0
- echo 正在查找 名称为 “!menu_title!” 的启动项目并确定其标识符......
- for /f "tokens=1*" %%c in ('bcdedit !bcd_p! /v') do (
- set "value=%%~d"
- if /i "!value:~0,1!"=="{" set "id=!value!"
- if /i "%%c"=="description" (if "%%~d"=="!menu_title!" (
- echo.& echo 找到项目,正在删除......
- echo !id!
- bcdedit %bcd_p% /delete !id!
- set /a n=!n!+1
- ))
- )
- echo.& echo 共处理 !n! 条
- goto end
- :error1
- echo 没有参数!请指明菜单项显示名称
- :end
- pause
复制代码
|
评分
-
查看全部评分
|