|  | 
 
| 本帖最后由 hilsonma 于 2019-12-26 06:04 编辑 
 复制代码@echo off
::设置当前路径为脚本所在路径
pushd %~dp0
::设置备份还原使用的备份包路径
set bak=d:\system.wim
::脚本在PE系统盘,没有拖放文件,默认一键还原
if %1%~d0==X: set "src=%bak%" &&goto:sys
::脚本不在PE系统盘,没有拖放文件,默认打包wim1文件夹生成pe镜像
if %1a==a set src=wim1&&goto:dir
::获取拖放文件以便判断
set src=%1
::拖放的是分区,进入系统备份
if %src:~-1%==\ goto:drv
::拖放的是文件夹,进入WIM打包
if exist %src%\ goto:dir
::PE环境,如果拖放的路径中没有PE字眼就进入一键还原
if not %SystemDrive%==X: goto:wim
for /f %%i in ('echo %src%^|find /i "pe"') do set str=%%i
if %str%a==a goto:sys
::到了这里,就当拖放的是PE镜像文件,进入WIM解包
:wim
title WIM解包
set dir=wim1
if %~d0==X: set dir=d:\%dir%
echo 正在解包%src% 放到%dir%
bin\wimlib-imagex apply %src% 1 %dir%
exit
:dir
title WIM打包
set wim=z.wim
if %~d0==X: set wim=d:\%wim%
echo 正在打包%src% 生成%wim%
bin\wimlib-imagex capture %src% %wim% --boot --check
exit
:drv
title 系统备份
echo.
echo     注意!!!
echo.
echo 即将把系统%src:~0,1%盘备份到%bak%
echo.
echo.
echo 要取消备份请关闭此窗口
echo.
echo 要继续备份请按任意键...
pause>nul
cls
echo.
echo 正在进行备份,请耐心等待,完成后会自动关闭窗口。
echo.
if %SystemDrive%==X: bin\wimlib-imagex capture %src% %bak% --check &&exit
::不是PE环境,需加--snapshot参数进行热备份
bin\wimlib-imagex capture %src% %bak% --check --snapshot
exit
:sys
title 一键还原
if not exist %src% goto :err
echo.
echo     注意!!!
echo.
echo 即将把系统还原到刚安装时的状态!!!
echo C盘的资料包括桌面的资料会丢失!!!
echo.
echo.
echo 要取消还原请关闭此窗口
echo.
echo 要继续还原请按任意键...
pause>nul
cls
echo 正在进行还原,你可以起来走一走,完成后会自动重启。
FORMAT C: /Q /Y >nul
bin\wimlib-imagex apply %src% 1 C:\
call bin\bcd.cmd
pecmd shut -r
exit
:err
echo.
echo 没有找到安装备份!
echo.
echo 按任意键退出...
pause>nul
exit
 
 支持拖放分区、目录、wim/esd文件,支持热备份。示例参见我的pe桌面一键还原快捷方式。
 
 
 
  Wimlib.7z
(1.05 MB, 下载次数: 1498) | 
 评分
查看全部评分
 |