无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 41063|回复: 82
打印 上一主题 下一主题

[发布] wim解包打包/系统安装备份还原脚本(wimlib-imagex)

    [复制链接]
跳转到指定楼层
1#
发表于 2019-12-18 12:24:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hilsonma 于 2019-12-26 06:04 编辑
  1. @echo off
  2. ::设置当前路径为脚本所在路径
  3. pushd %~dp0

  4. ::设置备份还原使用的备份包路径
  5. set bak=d:\system.wim

  6. ::脚本在PE系统盘,没有拖放文件,默认一键还原
  7. if %1%~d0==X: set "src=%bak%" &&goto:sys

  8. ::脚本不在PE系统盘,没有拖放文件,默认打包wim1文件夹生成pe镜像
  9. if %1a==a set src=wim1&&goto:dir

  10. ::获取拖放文件以便判断
  11. set src=%1

  12. ::拖放的是分区,进入系统备份
  13. if %src:~-1%==\ goto:drv

  14. ::拖放的是文件夹,进入WIM打包
  15. if exist %src%\ goto:dir

  16. ::PE环境,如果拖放的路径中没有PE字眼就进入一键还原
  17. if not %SystemDrive%==X: goto:wim
  18. for /f %%i in ('echo %src%^|find /i "pe"') do set str=%%i
  19. if %str%a==a goto:sys

  20. ::到了这里,就当拖放的是PE镜像文件,进入WIM解包
  21. :wim
  22. title WIM解包
  23. set dir=wim1
  24. if %~d0==X: set dir=d:\%dir%
  25. echo 正在解包%src% 放到%dir%
  26. bin\wimlib-imagex apply %src% 1 %dir%
  27. exit

  28. :dir
  29. title WIM打包
  30. set wim=z.wim
  31. if %~d0==X: set wim=d:\%wim%
  32. echo 正在打包%src% 生成%wim%
  33. bin\wimlib-imagex capture %src% %wim% --boot --check
  34. exit

  35. :drv
  36. title 系统备份
  37. echo.
  38. echo     注意!!!
  39. echo.
  40. echo 即将把系统%src:~0,1%盘备份到%bak%
  41. echo.
  42. echo.
  43. echo 要取消备份请关闭此窗口
  44. echo.
  45. echo 要继续备份请按任意键...
  46. pause>nul
  47. cls
  48. echo.
  49. echo 正在进行备份,请耐心等待,完成后会自动关闭窗口。
  50. echo.
  51. if %SystemDrive%==X: bin\wimlib-imagex capture %src% %bak% --check &&exit
  52. ::不是PE环境,需加--snapshot参数进行热备份
  53. bin\wimlib-imagex capture %src% %bak% --check --snapshot
  54. exit

  55. :sys
  56. title 一键还原
  57. if not exist %src% goto :err
  58. echo.
  59. echo     注意!!!
  60. echo.
  61. echo 即将把系统还原到刚安装时的状态!!!
  62. echo C盘的资料包括桌面的资料会丢失!!!
  63. echo.
  64. echo.
  65. echo 要取消还原请关闭此窗口
  66. echo.
  67. echo 要继续还原请按任意键...
  68. pause>nul
  69. cls
  70. echo 正在进行还原,你可以起来走一走,完成后会自动重启。
  71. FORMAT C: /Q /Y >nul
  72. bin\wimlib-imagex apply %src% 1 C:\
  73. call bin\bcd.cmd
  74. pecmd shut -r
  75. exit

  76. :err
  77. echo.
  78. echo 没有找到安装备份!
  79. echo.
  80. echo 按任意键退出...
  81. pause>nul
  82. exit
复制代码



支持拖放分区、目录、wim/esd文件,支持热备份。示例参见我的pe桌面一键还原快捷方式。


Wimlib.7z (1.05 MB, 下载次数: 1406)

评分

参与人数 3无忧币 +15 收起 理由
879792799 + 5 真给力!
wuxin9712 + 5
sghihor + 5

查看全部评分

2#
发表于 2019-12-18 13:29:39 | 只看该作者
本帖最后由 sghihor 于 2019-12-18 13:37 编辑

PE下的好工具
高效.

备份wim,
解压wim文件到系统
但,数据无价,还原时,先备份资料.
回复

使用道具 举报

3#
发表于 2019-12-18 13:50:42 | 只看该作者
感谢hilsonma分享
回复

使用道具 举报

4#
发表于 2019-12-18 14:52:16 | 只看该作者
感谢分享 收藏了!
回复

使用道具 举报

5#
发表于 2019-12-19 09:34:59 | 只看该作者
谢谢
回复

使用道具 举报

6#
发表于 2020-1-8 08:59:34 | 只看该作者
感谢分享。
回复

使用道具 举报

7#
发表于 2020-1-26 22:32:47 | 只看该作者
學習中感謝大大
回复

使用道具 举报

8#
发表于 2020-5-4 08:08:26 | 只看该作者
感谢分享。
回复

使用道具 举报

9#
发表于 2020-5-19 09:45:21 | 只看该作者
感谢分享。
回复

使用道具 举报

10#
发表于 2020-5-28 21:02:56 | 只看该作者
大侠,按您说的将esd文件名去掉空格拖放到脚本上会解包到wim1文件夹,并重新打包成wim文件,那么wim1文件夹如何卸载呢?

点评

手工清空wim1文件夹。  详情 回复 发表于 2020-5-29 00:02
回复

使用道具 举报

11#
 楼主| 发表于 2020-5-29 00:02:30 | 只看该作者
898756744 发表于 2020-5-28 21:02
大侠,按您说的将esd文件名去掉空格拖放到脚本上会解包到wim1文件夹,并重新打包成wim文件,那么wim1文件夹 ...

手工清空wim1文件夹。

点评

谢谢!手工删除了。如果能在重新打包wim文件后自动清空就更好了。  详情 回复 发表于 2020-6-2 20:43
回复

使用道具 举报

12#
发表于 2020-5-29 00:23:14 | 只看该作者
感谢分享
回复

使用道具 举报

13#
发表于 2020-5-31 16:28:32 来自手机 | 只看该作者
还没写全呢
回复

使用道具 举报

14#
发表于 2020-6-2 20:43:35 | 只看该作者
hilsonma 发表于 2020-5-29 00:02
手工清空wim1文件夹。

谢谢!手工删除了。如果能在重新打包wim文件后自动清空就更好了。

点评

你可以在脚本中打包之后,退出之前,即42行与43行之间,添加这句: del /f /s /q wim1 >nul 这样就会在打包后自动清空。 但是不排除有特殊情况不能完全清空的情况,建议每次解包前检查一次是否已清空。  详情 回复 发表于 2020-6-2 21:12
回复

使用道具 举报

15#
 楼主| 发表于 2020-6-2 21:12:54 | 只看该作者
898756744 发表于 2020-6-2 20:43
谢谢!手工删除了。如果能在重新打包wim文件后自动清空就更好了。

你可以在脚本中打包之后,退出之前,即42行与43行之间,添加这句:
del /f /s /q wim1 >nul

这样就会在打包后自动清空。
但是不排除有特殊情况不能完全清空的情况,建议每次解包前检查一次是否已清空。

点评

第43行是:“echo 要取消备份请关闭此窗口 ”吗?  详情 回复 发表于 2020-6-2 22:19
回复

使用道具 举报

16#
发表于 2020-6-2 22:19:38 | 只看该作者
hilsonma 发表于 2020-6-2 21:12
你可以在脚本中打包之后,退出之前,即42行与43行之间,添加这句:
del /f /s /q wim1 >nul

第43行是:“echo 要取消备份请关闭此窗口 ”吗?

点评

看一楼的代码,第42行是 bin\wimlib-imagex capture %src% %wim% --boot --check 第43行是 exit 第42行是打包,第43行是退出 你把这两行 bin\wimlib-imagex capture %src% %wim% --boot --check exit  详情 回复 发表于 2020-6-3 07:06
回复

使用道具 举报

17#
 楼主| 发表于 2020-6-3 07:06:03 | 只看该作者
898756744 发表于 2020-6-2 22:19
第43行是:“echo 要取消备份请关闭此窗口 ”吗?

看一楼的代码,第42行是
bin\wimlib-imagex capture %src% %wim% --boot --check

第43行是
exit

第42行是打包,第43行是退出

你把这两行
bin\wimlib-imagex capture %src% %wim% --boot --check
exit

改成
bin\wimlib-imagex capture %src% %wim% --boot --check
del /f /s /q wim1 >nul
exit

即在这两行之间加一行 del /f /s /q wim1 >nul  表示清空wim1

点评

大侠,加了之后不但没有清除wim1文件夹,还没有重新打包成的wim文件。  详情 回复 发表于 2020-6-3 15:35
回复

使用道具 举报

18#
发表于 2020-6-3 15:35:22 | 只看该作者
hilsonma 发表于 2020-6-3 07:06
看一楼的代码,第42行是
bin\wimlib-imagex capture %src% %wim% --boot --check

大侠,加了之后不但没有清除wim1文件夹,还没有重新打包成的wim文件。

点评

那就算了吧,还是手工清除。 因为这样的情况下必须在前面打包语句添加等待,越搞越复杂,所以还是简单点手工清除,还能当场确定是否清空。  详情 回复 发表于 2020-6-3 15:48
回复

使用道具 举报

19#
 楼主| 发表于 2020-6-3 15:48:32 | 只看该作者
898756744 发表于 2020-6-3 15:35
大侠,加了之后不但没有清除wim1文件夹,还没有重新打包成的wim文件。

那就算了吧,还是手工清除。

因为这样的情况下必须在前面打包语句添加等待,越搞越复杂,所以还是简单点手工清除,还能当场确定是否清空。

点评

好的,谢谢啦  详情 回复 发表于 2020-6-3 15:54
回复

使用道具 举报

20#
发表于 2020-6-3 15:54:25 | 只看该作者
hilsonma 发表于 2020-6-3 15:48
那就算了吧,还是手工清除。

因为这样的情况下必须在前面打包语句添加等待,越搞越复杂,所以还是简单 ...

好的,谢谢啦
回复

使用道具 举报

21#
发表于 2020-6-16 15:19:20 | 只看该作者
大佬 请问从微PE提出的WEPE64.WIM,用您此脚本 既不能解包 也不能打包,是什么原因?

点评

我刚才将附件下载试了一下,确实不能解包新的WEPE64.WIM 是wimlib无法解析新的xml,我现在不能修改脚本解决,估计是wimlib程序的原因,或者是我还不够熟悉wimlib程序的使用。 或者可以改用7z来解包,我还在考虑是  详情 回复 发表于 2020-6-16 16:51
回复

使用道具 举报

22#
 楼主| 发表于 2020-6-16 16:51:34 | 只看该作者
kuer 发表于 2020-6-16 15:19
大佬 请问从微PE提出的WEPE64.WIM,用您此脚本 既不能解包 也不能打包,是什么原因?

我刚才将附件下载试了一下,确实不能解包新的WEPE64.WIM
是wimlib无法解析新的xml,我现在不能修改脚本解决,估计是wimlib程序的原因,或者是我还不够熟悉wimlib程序的使用。
或者可以改用7z来解包,我还在考虑是否脚本也改用7z解包。

你可以使用7z手工解包到wim1文件夹,然后就可以在wim1文件夹中修改并使用脚本重新打包了。

点评

刚才试了一下,用7z手工解包到wim1文件夹 也不能使用脚本重新打包!用大漠孤鹰的Wim映像工具解包打包没问题!  详情 回复 发表于 2020-6-16 20:44
回复

使用道具 举报

23#
发表于 2020-6-16 20:44:07 | 只看该作者
hilsonma 发表于 2020-6-16 16:51
我刚才将附件下载试了一下,确实不能解包新的WEPE64.WIM
是wimlib无法解析新的xml,我现在不能修改脚本 ...

刚才试了一下,用7z手工解包到wim1文件夹   也不能使用脚本重新打包!用大漠孤鹰的Wim映像工具解包打包没问题!
回复

使用道具 举报

24#
发表于 2020-8-20 11:36:56 | 只看该作者
谢谢楼主分享!!!
回复

使用道具 举报

25#
发表于 2020-12-24 19:38:36 | 只看该作者
多谢分享!
回复

使用道具 举报

26#
发表于 2020-12-29 01:01:26 | 只看该作者
请教,wimlib热能备份打包的wim文件能否制作成能引导启动的iso PE系统?

点评

热备份打包得到的wim文件是备份包,里面的注册表等设置内容都是对应于操作系统分区(一般是C盘)的,所以就算做成可启动的wim,直接启动应该也会是出错的,只能用于还原到操作系统分区(如C盘)。这是我想象的,我没有做  详情 回复 发表于 2020-12-29 04:22
回复

使用道具 举报

27#
 楼主| 发表于 2020-12-29 04:22:43 | 只看该作者
likehell 发表于 2020-12-29 01:01
请教,wimlib热能备份打包的wim文件能否制作成能引导启动的iso PE系统?

热备份打包得到的wim文件是备份包,里面的注册表等设置内容都是对应于操作系统分区(一般是C盘)的,所以就算做成可启动的wim,直接启动应该也会是出错的,只能用于还原到操作系统分区(如C盘)。这是我想象的,我没有做过这样的测试,你如果想知道结果可以自己试一试。

你如果想制作PE系统需要使用PE系统的制作工具。

本贴这个工具在PE方面的作用是,可以用来解开原先制作好的PE wim文件,放到一个文件夹,在这个文件夹做一定的修改后,再重新打包成为wim文件,这样来达到修改pe的目的。

至于要将wim文件制作成iso文件,请参考另一个贴子:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=419771

点评

好的,明白了。谢谢!  详情 回复 发表于 2020-12-29 12:48
回复

使用道具 举报

28#
发表于 2020-12-29 12:48:21 | 只看该作者
hilsonma 发表于 2020-12-29 04:22
热备份打包得到的wim文件是备份包,里面的注册表等设置内容都是对应于操作系统分区(一般是C盘)的,所以就 ...

好的,明白了。谢谢!
回复

使用道具 举报

29#
发表于 2021-1-1 12:42:32 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

30#
发表于 2021-1-13 15:55:36 | 只看该作者
好东西 多谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 13:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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