无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 615|回复: 32
打印 上一主题 下一主题

[原创] VHD还原开机脚本 两种还原模式 + 桌面右键菜单查看选择

  [复制链接]
跳转到指定楼层
1#
发表于 3 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 baby1277 于 2024-6-26 19:48 编辑

构思调试写了半天头发又少了几根,先把批处理代码贴上。

-----------------------我是分割线-------------------保存ANSI编码--------------------------
%1(start /min cmd.exe /c %0 :&exit)
@echo off
cd /d %~dp0
:: 检查文件
if not exist bcd10 goto end
if not exist bcd1a goto end
if not exist bcd11 goto end
if not exist bcd1b goto end
if not exist Windown11_10.vhdx goto end
if not exist Windown11_11.vhdx goto end
if not exist Windown11_1a.vhdx goto end
if not exist Windown11_1b.vhdx goto end
if not exist Windown11_back.vhdx goto end
:: 临时重命名来间接判断当前启动菜单
ren Windown11_10.vhdx Windown11_10.tem
ren Windown11_11.vhdx Windown11_11.tem
ren Windown11_1a.vhdx Windown11_1a.tem
ren Windown11_1b.vhdx Windown11_1b.tem
:: 根据当前启动菜单设置下次启动菜单
if not exist C:\Windows\Help\baby1277 call 添加桌面右键菜单.bat
if not exist Windown11_10.vhdx goto bcd1a
bcdedit /import bcd10
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.1" /v "" /t REG_SZ /d "Windown11  正常模式         √" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.2" /v "" /t REG_SZ /d "Windown11  还原模式" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.3" /v "" /t REG_SZ /d "Windown11  出厂模式" /f
:bcd1a
if not exist Windown11_1a.vhdx goto bcd1b
bcdedit /import bcd1a
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.1" /v "" /t REG_SZ /d "Windown11  正常模式         √" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.2" /v "" /t REG_SZ /d "Windown11  还原模式" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.3" /v "" /t REG_SZ /d "Windown11  出厂模式" /f
:bcd1b
if not exist Windown11_11.vhdx goto  bcd11
bcdedit /import bcd1b
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.1" /v "" /t REG_SZ /d "Windown11  正常模式" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.2" /v "" /t REG_SZ /d "Windown11  还原模式         √" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.3" /v "" /t REG_SZ /d "Windown11  出厂模式" /f
:bcd11
if not exist Windown11_1b.vhdx goto bcdend
bcdedit /import bcd11
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.1" /v "" /t REG_SZ /d "Windown11  正常模式" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.2" /v "" /t REG_SZ /d "Windown11  还原模式         √" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\start.3" /v "" /t REG_SZ /d "Windown11  出厂模式" /f
:bcdend
:: 重置还原模式的VHD文件
copy /y Windown11_back.vhdx Windown11_1b.vhdx
copy /y Windown11_back.vhdx Windown11_11.vhdx
:: 还原临时被重命名的文件名
ren Windown11_10.tem Windown11_10.vhdx
ren Windown11_1a.tem Windown11_1a.vhdx
:: 列举正常模式或出厂模式的VHD文件时间戳
for /r %%i in (*10.*) do set v0=%%~ti
set v0=%v0: =%
set v0=%v0::=%
set v0=%v0:/=%
for /r %%i in (*1a.*) do set va=%%~ti
set va=%va: =%
set va=%va::=%
set va=%va:/=%
:: 在任意模式下该VHD文件时间戳长的被还原
if %v0% gtr %va% copy /y Windown11_back.vhdx Windown11_1a.vhdx
if %va% gtr %v0% copy /y Windown11_back.vhdx Windown11_10.vhdx
:: 列举正常模式或出厂模式的VHD文件大小
for /r %%i in (*10.*) do set d0=%%~zi
for /r %%i in (*1a.*) do set da=%%~zi
:: 在任意模式下该VHD文件大小小的被还原
if %d0% gtr %da% copy /y Windown11_back.vhdx Windown11_1a.vhdx
if %da% gtr %d0% copy /y Windown11_back.vhdx Windown11_10.vhdx
:: 删除旧VHD文件
del /f /q *.tem >nul 2>nul
::  添加开机启动项
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "vhd" /t REG_SZ /d %0 /f
exit
:end
msg %username% /time:5  文件缺失,请手动创建bcd文件和差分vhd文件。


-----------------------我是分割线-------------------保存ANSI编码--------------------------

正常模式:不会还原系统
还原模式:每次开机都还原,但正常模式下的VHD文件保留不变。
出厂模式:只还原一次,正常模式下使用的VHD文件被删除,下次开机为正常模式。






开机启动脚本的逻辑:---------- 1获取启动菜单---------2导入BCD引导文件----------3重置或者保留VHD文件

1:获取启动菜单
     通过命令执行结果查看被占用的VHD文件,间接的获取获取启动菜单

2:导入BCD引导文件
     导入BCD引导文件也可以用命令代替,我选择用BOOTICE编辑的方法,最后用bcdedit /import 命令导入
     主要是让大家可以直观的学习下原理,方便大家一起探讨学习。
     bcd文件和vhd文件与启动菜单是巧妙关联的,以下是我整理出的xls表格,不理解的按截图设置(附件中)。

   

3:重置或者保留VHD文件
     重置文件直接用copy命令覆盖,关键是如何保留正常模式下的所使用VHD文件。
     我的方法是通过VHD文件大小和时间来筛选。

     情况1
     正常模式下被占用的VHD文件比另外一个大
     假如在出厂模式时两个VHD文件都有挂载过,大小就不确定。
     这时可通过查询VHD文件的时间戳来判断
     既然是出厂模式,那之前的VHD文件时间戳肯定比较长

    情况2
    正常模式下被占用的VHD文件时间戳比另外一个短
    假如我选择出厂模式,如果VHD文件是当天创建的可能时间戳相同
    这时我们可以使用VHD文件的大小来判断
    时间戳相同的情况VHD文件只要挂载过肯定比另外一个大

VHD文件的时间戳和大小单独使用都有漏洞,先筛选VHD文件的时间戳再筛选大小,结合起来就完美了。

本人的操作系统为 Windows_11_23H2 固件为 UEFI 在实体机多次测试OK。


附件在沙发方便更新。。。

文件结构.jpg (433.47 KB, 下载次数: 0)

文件结构.jpg

正常模式.jpg (102.77 KB, 下载次数: 0)

正常模式.jpg

IMG_20240623_045628.jpg (2.59 MB, 下载次数: 0)

IMG_20240623_045628.jpg

点评

辛苦了  发表于 3 天前

评分

参与人数 6无忧币 +32 收起 理由
smartcowboy + 5 期待分享其他更好的作品
whyme22 + 5
Myptour + 5 赞一个!
新空气 + 5
yyz2191958 + 2 赞一个!
20090101 + 10 很给力!

查看全部评分

2#
 楼主| 发表于 3 天前 | 只看该作者
本帖最后由 baby1277 于 2024-6-26 19:51 编辑

百度网盘:https://pan.baidu.com/s/1tYofh8WkaySA2JEFcvmOwA        提取码:1277

VHD自动还原开机脚本 两种还原模式 + 桌面右键菜单查看选择.rar

754.6 KB, 下载次数: 1, 下载积分: 无忧币 -2

回复

使用道具 举报

3#
发表于 3 天前 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

4#
发表于 3 天前 | 只看该作者
谢谢共享
回复

使用道具 举报

5#
发表于 3 天前 | 只看该作者
密码是?

点评

我的ID 帖子中有说明  详情 回复 发表于 3 天前
回复

使用道具 举报

6#
 楼主| 发表于 3 天前 | 只看该作者

我的ID 帖子中有说明
回复

使用道具 举报

7#
发表于 3 天前 | 只看该作者

谢谢分享!!!
回复

使用道具 举报

8#
发表于 3 天前 | 只看该作者
谢谢分享
回复

使用道具 举报

9#
发表于 3 天前 | 只看该作者
感谢分享,我比较菜,不懂VHD,有详细使用说明吗?谢谢

点评

详细的资料,只能帮助到这里了。 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414366  详情 回复 发表于 3 天前
回复

使用道具 举报

10#
 楼主| 发表于 3 天前 | 只看该作者
2013ertert 发表于 2024-6-23 17:28
感谢分享,我比较菜,不懂VHD,有详细使用说明吗?谢谢

详细的资料,只能帮助到这里了。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414366
回复

使用道具 举报

11#
发表于 3 天前 | 只看该作者
vhd系统一直不能休眠啊 ,而我又需要休眠,
所以我不大用vhd系统

点评

用winntsetup创建/附加VHD并安装系统进去,主BCD里有Windows Resume Application. 你试试这样操作,看看这样整的系统能不能休眠?  详情 回复 发表于 前天 10:59
回复

使用道具 举报

12#
 楼主| 发表于 3 天前 | 只看该作者
从来没用过休眠功能,刚刚我试用了好像支持,点击睡眠主机风扇和屏幕也关了。
不知道是不是休眠,可以win11支持了也难说。


点评

vhd支持睡眠、不支持休眠。 我是台式机,因为有没干完的活(打开的软件或其他,也怕关机把没干完的活忘了),所以不能关机,但又怕停电,只能休眠。  详情 回复 发表于 前天 11:17
回复

使用道具 举报

13#
发表于 3 天前 | 只看该作者
主板支持睡眠,就可以的。我一直在用。
回复

使用道具 举报

14#
发表于 3 天前 | 只看该作者
谢谢分享
回复

使用道具 举报

15#
发表于 3 天前 | 只看该作者
VHD从7时代就开始用了,挺好的,特别是用来测试系统
你这个想法,貌似之前有人发过类似的,更早以前BIOS模式还有个GUI小软件形式添加的,不过,我个人更喜欢手工确认更换
回复

使用道具 举报

16#
发表于 3 天前 | 只看该作者
RE: UEFI VHD还原开机脚本 添加出厂模式 堪称完美 [修改]
回复

使用道具 举报

17#
发表于 3 天前 | 只看该作者
谢谢分享。
回复

使用道具 举报

18#
发表于 3 天前 | 只看该作者

谢谢分享
回复

使用道具 举报

19#
发表于 前天 08:35 | 只看该作者
谢谢分享
回复

使用道具 举报

20#
发表于 前天 09:48 | 只看该作者
回复

使用道具 举报

21#
发表于 前天 10:39 | 只看该作者
谢谢分享
回复

使用道具 举报

22#
发表于 前天 10:59 | 只看该作者
likeyouli 发表于 2024-6-23 17:37
vhd系统一直不能休眠啊 ,而我又需要休眠,
所以我不大用vhd系统

用winntsetup创建/附加VHD并安装系统进去,主BCD里有Windows Resume Application. 你试试这样操作,看看这样整的系统能不能休眠?

点评

这句没看懂, 我感觉应该也不能休眠,不能休眠的原因估计是虚拟分区的原因,也就是说只有正常硬盘分区才支持休眠。 这只是我猜测。  详情 回复 发表于 前天 11:09
回复

使用道具 举报

23#
发表于 前天 11:09 | 只看该作者
音乐与电脑 发表于 2024-6-24 10:59
用winntsetup创建/附加VHD并安装系统进去,主BCD里有Windows Resume Application. 你试试这样操作,看看 ...
主BCD里有Windows Resume Application
这句没看懂,
  我感觉应该也不能休眠,不能休眠的原因估计是虚拟分区的原因,也就是说只有正常硬盘分区才支持休眠。 这只是我猜测。

点评

要不试试  详情 回复 发表于 前天 11:38
回复

使用道具 举报

24#
发表于 前天 11:17 | 只看该作者
baby1277 发表于 2024-6-23 17:45
从来没用过休眠功能,刚刚我试用了好像支持,点击睡眠主机风扇和屏幕也关了。
不知道是不是休眠,可以win1 ...

vhd支持睡眠、不支持休眠。
  我是台式机,因为有没干完的活(打开的软件或其他,也怕关机把没干完的活忘了),所以不能关机,但又怕停电,只能休眠。
回复

使用道具 举报

25#
发表于 前天 11:38 | 只看该作者
likeyouli 发表于 2024-6-24 11:09
这句没看懂,
  我感觉应该也不能休眠,不能休眠的原因估计是虚拟分区的原因,也就是说只有正常硬盘分 ...

要不试试
回复

使用道具 举报

26#
发表于 前天 13:03 | 只看该作者
感谢楼主分享
回复

使用道具 举报

27#
发表于 前天 15:02 | 只看该作者
感谢辛苦提供分享!
回复

使用道具 举报

28#
发表于 昨天 08:45 | 只看该作者

谢谢楼主
回复

使用道具 举报

29#
发表于 昨天 12:04 | 只看该作者
支持原创。虽然vhd一键还原早就有了,但是爱折腾永不过时。
回复

使用道具 举报

30#
发表于 昨天 14:11 | 只看该作者
感谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-26 21:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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