无忧启动论坛

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

bcd设置一次性启动重启后进入PE等系统批处理,请指正

[复制链接]
跳转到指定楼层
1#
发表于 2018-10-27 17:40:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yjqd 于 2018-10-27 17:41 编辑

适用于win7系统

bcd已配置了如下:
微软方式启动的Pe                 仅一个
Grub4dos实模式启动              仅一个
windows自带的Winre修复       仅一个

bcdedit需要有中文语言文件
---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
@echo off
cd /d %~dp0

echo.
bcdedit /enum {bootmgr}|find "bootsequence">nul||echo 在系统BCD中没发现一次性启动
bcdedit /enum {bootmgr}|find "bootsequence">nul&&echo 在系统BCD中发现一次性启动
echo.

rem 获取--Pe--启动项的标识(identifier)
for /F "usebackq tokens=1,*" %%I IN (`bcdedit /enum^|findstr /I "标识符 identifier"`) DO (for /F "usebackq" %%A IN (`bcdedit /enum %%J^|findstr /I ".wim,"`) DO (set p=%%J))

rem  获取--Grub4dos实模式启动扇区--启动项的标识(identifier)
for /F "usebackq tokens=1,*" %%I IN (`bcdedit /enum all^|findstr /I "标识符 identifier"`) DO (for /F "usebackq" %%A IN (`bcdedit /enum %%J^|findstr /I "实模式启动扇区 Real-mode"`) DO (set g=%%J))

rem  获取--Winre修复计算机--启动项的标识(identifier)
for /F "usebackq tokens=1,*" %%I IN (`bcdedit /enum all^|findstr /I "标识符 identifier"`) DO (for /F "usebackq" %%A IN (`bcdedit /enum %%J^|findstr /I "Winre.wim"`) DO (set r=%%J))


echo 获取--Pe--启动项的标识(identifier)
echo %p%
echo.
echo 获取--Grub4dos实模式启动扇区--启动项的标识(identifier)
echo %g%
echo.
echo 获取--Winre修复计算机--启动项的标识(identifier)
echo %r%
echo.
echo.

echo 设置一次性启动
echo 启动pe就输入p,启动Grub4dos就输入g,启动修复就输入r,不分区大小写
echo.

set /p y=请输入:
echo.
if /i "%y%"=="p" set y=%p%
if /i "%y%"=="g" set y=%g%
if /i "%y%"=="r" set y=%r%

echo 导出系统的bcd(备份)
bcdedit /export 备份bcd

echo.
echo 把所选启动项设为一次性启动
bcdedit  /store "%cd%"\备份BCD /bootsequence %y%

echo.
echo 导入bcd(备份)到系统的bcd
bcdedit /import 备份bcd
del 备份bcd
del *.lo* /A

echo.
bcdedit /enum {bootmgr}|find "bootsequence">nul||echo 在系统BCD中没发现一次性启动
bcdedit /enum {bootmgr}|find "bootsequence"&&echo 在系统BCD中发现一次性启动
echo.
for /F "usebackq tokens=1,*" %%I IN (`bcdedit /enum {bootmgr}^|find "bootsequence"`) DO (
if /i "%%J"=="%p%" echo 一次性启动为:--Pe--
if /i "%%J"=="%g%" echo 一次性启动为:--Grub4dos实模式启动扇区--
if /i "%%J"=="%r%" echo 一次性启动为:--Winre修复计算机--)
echo.
timeout 2
echo.
echo 重启系统
shutdown -r -t 5

exit

---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
重启后进入Winre修复计算机也可用下面的命令:
用reagentc命令来设置:

@echo off
reagentc  /boottore

评分

参与人数 2无忧币 +6 收起 理由
maomihuacha + 1
tools241 + 5 很给力!

查看全部评分

2#
发表于 2018-10-27 18:09:47 | 只看该作者
感谢楼主分享!我的win7系统是精简版的,没有winre环境,使用后自动进入了事先安装的OBR一键还原系统了。
回复

使用道具 举报

3#
发表于 2018-10-27 19:15:49 | 只看该作者
谢谢分享,收藏 了
回复

使用道具 举报

4#
发表于 2018-10-28 03:41:10 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

5#
 楼主| 发表于 2018-10-29 11:21:20 | 只看该作者

重启后进入Winre修复计算机也可用下面的命令:
用reagentc命令来设置:

@echo off
reagentc  /boottore
echo.
echo 重启系统
echo.
bcdedit /enum {bootmgr}|find "bootsequence">nul||echo 在系统BCD中没发现一次性启动
bcdedit /enum {bootmgr}|find "bootsequence"&&echo 在系统BCD中发现一次性启动
echo.
shutdown -r -t 5

exit
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-15 14:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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