|
本帖最后由 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, 下载次数: 1406)
|
评分
-
查看全部评分
|