抛弃Ghost!自制基于imagex的系统备份批处理
2010-01-02 08:29:38 来源:WEB开发网imagex简介:
微软的官方镜像封装工具,基于文件,可以通过文件来寻找合适的硬件,而不是像基于扇区的Ghost一样,压缩率低并且还原后问题重重。
原版Vista/Windows 7安装盘目录下sources文件夹下的install.wim就是基于imagex做出来的镜像。
实测备份15G的系统盘,耗时20分钟(标准压缩率),体积4G左右。
还原耗时10分钟左右。
由于imagex是命令行操作,令不少人头大。于是我萌生了用我那三脚猫的批处理功夫做一个简单的批处理,从而实现简单的系统备份/还原。
有很多缺陷,还望高手指出。
说明:
此文件只能做到在PE环境下运行(imagex的限制)
windows 7系统最好办,重启按F8键,选择“修复计算机” 下一步 选择“命令提示符”
切到bat所在的目录运行abc.bat就可以了
其他系统也可以用,但是需要光盘或者U盘来启动到PE模式
其中一个很大的问题是,这样盘符就乱了 D盘不一定变成哪个盘了
所以问题多多 还望高手指教!以下为代码:
@echo off
title 系统备份程序 姜智昆制作
echo.
:menu
color ce
mode con:cols=90 lines=18
if exist d:\imagex\imagex.exe goto act
echo ===================================
echo 程序将复制imagex程序至D盘
echo 按任意键继续
echo ===================================
pause ->nul
xcopy %cd%\imagex d:\imagex /e /i
goto act
:act
cls
echo ===================================
echo 此程序需在PE环境下运行
echo Win7进入PE方法为:
echo 重启并按下F8
echo 选择第一项“修复计算机”
echo 进入后选择“命令提示符”
echo 自动备份会默认系统盘为C 目标盘为D
echo 自动还原会将C盘格式化并D盘下的文件还原
echo 如有数据丢失
echo 禁止跨省追捕
echo 欢迎交流 mail:pgydgs@163.com
echo ===================================
pause ->nul
goto chose
:chose
cls
echo 请选择要进行的操作 按回车确认
echo 1. 进行备份
echo 2. 还原系统
echo 3. 删除备份
echo 4. 退出程序
echo 5. 自动备份
echo 6. 自动还原
echo.
set cho=
set /p cho=输入:
if /i "%cho%"=="1" goto 1
if /i "%cho%"=="2" goto 2
if /i "%cho%"=="3" goto 3
if /i "%cho%"=="4" goto 4
if /i "%cho%"=="5" goto 5
if /i "%cho%"=="6" goto 6
cls
echo 选择无效 重新输入
pause ->nul
goto chose
:1
cls
set /p xtpanfu=请输入要备份的分区盘符:
if not "%xtpanfu%"=="" set xtpanfu=%xtpanfu:~0,1%
set /p panfu=请输入备份文件目标盘符:
if not "%panfu%"=="" set panfu=%panfu:~0,1%
if exist %panfu%:\systembackup.wim echo 将删除以前的备份文件&pause&&del %panfu%:\systembackup.wim
d:
cd imagex
imagex /capture %xtpanfu%: %panfu%:\systembackup.wim "backup"
echo ====================================
echo 备份完毕!将系统备份在%panfu%盘
echo 文件名为systembackup.wim
echo 请重启计算机
echo ====================================
set /p panfu=
set /p xtpanfu=
goto chose
:2
cls
set /p panfu=请输入备份文件所在盘符:
if not "%panfu%"=="" set panfu=%panfu:~0,1%
set /p xtpanfu=请输入系统盘符:
if not "%xtpanfu%"=="" set xtpanfu=%xtpanfu:~0,1%
echo =====================================
echo 确定将%xtpanfu%盘格式化
echo 并用%panfu%盘的镜像文件还原么?
echo 输入Y继续
echo 输入N返回菜单
echo =====================================
set /p sf=
if /i "%sf%"=="Y" goto Y
if /i "%sf%"=="N" goto chose
cls
echo 输入无效 将返回菜单
pause
goto chose
:Y
format %xtpanfu%: /fs:ntfs /q /y
d:
cd imagex
imagex /apply %panfu%:\systembackup.wim 1 %xtpanfu%:
bcdboot %xtpanfu%:\windows /s %xtpanfu%:
echo ====================================
echo 系统还原完成!请重启计算机
echo ====================================
set /p panfu=
set /p xtpanfu=
set /p sf=
goto chose
:3
cls
set /p panfu=请输入备份文件所在盘符:
if not "%panfu%"=="" set panfu=%panfu:~0,1%
if not exist %panfu%:\systembackup.wim echo 无法找到文件,按任意键返回菜单&pause ->nul&&cls&&goto chose
del %panfu%:\systembackup.wim /f
echo 备份删除成功!
goto chose
:4
exit
:5
cls
echo ====================================
echo 该操作将会备份C盘到D盘
echo 按任意键继续
echo ====================================
pause ->nul
d:
cd imagex
imagex /capture c: d:\systembackup.wim "backup"
echo ====================================
echo 系统备份完成!请重启计算机!
echo ====================================
pause ->nul
goto chose
:6
cls
echo ====================================
echo 该操作将会格式化C盘!按任意键确认
echo ====================================
pause ->nul
format c: /q /y
d:
cd imagex
imagex /apply d:\systembackup.wim 1 c:
bcdboot c:\windows /s c:
echo ====================================
echo 系统还原完成
echo 请重启计算机
echo ====================================
pause ->nul
goto chose
复制代码
注:当前目录下有imagex.exe
更多精彩
赞助商链接