|
|
发表于 2026-8-29 21:26:17
|
显示全部楼层
本帖最后由 jiguo 于 2026-8-29 21:41 编辑
确实有点复杂,我自用的是做好vhdx系统后差分出一个子vhdx文件并拷贝三份并分别命名(均存放于D盘根目录):
父vhdx文件名:WOS.vhdx
正常启动:WOSX.vhdx
备份文件:WOSBak.vhdx
还原系统:WOSB.vhdx
系统启动BCD菜单(默认1,等待三秒):
1、启动系统(对应WOSX.vhdx文件)
2、维护系统(对应WOSB.vhdx文件)
3、WinPE64(或其他,自行安排)
还原批处理文件内容(登录2、维护系统,后手动或加入run自启动菜单管理员运行)
如果加入自启动菜单里,则可全程无感(仅BCD菜单选择一次),自动还原并重启登录还原后的新系统:
@ECHO OFF&color 0c&title 系统还原&mode con: cols=25 lines=5&Pushd %~dp0&taskkill /f /im EXPLORER.EXE&cls
::检查系统版本
set OSVER="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
for /f "skip=2 tokens=2*" %%i in ('REG QUERY %OSVER%') do set sysinfo=%%j
If "%PROCESSOR_ARCHITECTURE%"=="AMD64" (Set BB=64) Else (Set BB=32)
color 0a&mode con: cols=50 lines=10&cls&echo.
echo 当前主机操作系统&echo.&echo 版本为:%sysinfo% %BB%Bit&echo.
echo 进行系统还原吗?&echo.
choice /C YN /N /D Y /T 10 /M "★ 按Y继续,按N退出,十秒后自动还原:"
IF ERRORLEVEL 2 goto TC
IF ERRORLEVEL 1 goto hyxt
:hyxt
if exist "D:\WOSBak.vhdx" (
attrib -r -s -h D:\WOSX.vhdx&&del /f /q D:\WOSX.vhdx&&attrib -r -s -h D:\WOSBak.vhdx&&xcopy D:\WOSBak.vhdx D:\WOSX.vhdx /R/Y/Q/-i
attrib +r +s +h D:\WOSBak.vhdx&attrib +s +h D:\WOSX.vhdx
) Else (echo 没有找到系统备份&timeout /t 3 >nul&goto TC)
cls&echo.&echo 操作成功&echo.
choice /C YN /N /D Y /T 10 /M "★ 按Y立即重启,按N返回桌面,十秒后自动重启:"
IF ERRORLEVEL 2 goto TC
IF ERRORLEVEL 1 shutdown /r /t 0 /f&exit
:TC
start EXPLORER.EXE&exit
|
|