无忧启动论坛

标题: wim解包打包/系统安装备份还原脚本(wimlib-imagex) [打印本页]

作者: hilsonma    时间: 2019-12-18 12:24
标题: wim解包打包/系统安装备份还原脚本(wimlib-imagex)
本帖最后由 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, 下载次数: 1346)

作者: sghihor    时间: 2019-12-18 13:29
本帖最后由 sghihor 于 2019-12-18 13:37 编辑

PE下的好工具
高效.

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

作者: sofood    时间: 2019-12-18 13:50
感谢hilsonma分享
作者: kuer    时间: 2019-12-18 14:52
感谢分享 收藏了!
作者: liujun2000    时间: 2019-12-19 09:34
谢谢
作者: shinehaa    时间: 2020-1-8 08:59
感谢分享。
作者: wplin    时间: 2020-1-26 22:32
學習中感謝大大
作者: 363636    时间: 2020-5-4 08:08
感谢分享。
作者: jack6600gt    时间: 2020-5-19 09:45
感谢分享。
作者: 898756744    时间: 2020-5-28 21:02
大侠,按您说的将esd文件名去掉空格拖放到脚本上会解包到wim1文件夹,并重新打包成wim文件,那么wim1文件夹如何卸载呢?
作者: hilsonma    时间: 2020-5-29 00:02
898756744 发表于 2020-5-28 21:02
大侠,按您说的将esd文件名去掉空格拖放到脚本上会解包到wim1文件夹,并重新打包成wim文件,那么wim1文件夹 ...

手工清空wim1文件夹。
作者: tjwx    时间: 2020-5-29 00:23
感谢分享
作者: x9tian    时间: 2020-5-31 16:28
还没写全呢
作者: 898756744    时间: 2020-6-2 20:43
hilsonma 发表于 2020-5-29 00:02
手工清空wim1文件夹。

谢谢!手工删除了。如果能在重新打包wim文件后自动清空就更好了。
作者: hilsonma    时间: 2020-6-2 21:12
898756744 发表于 2020-6-2 20:43
谢谢!手工删除了。如果能在重新打包wim文件后自动清空就更好了。

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

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

第43行是:“echo 要取消备份请关闭此窗口 ”吗?
作者: hilsonma    时间: 2020-6-3 07:06
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
作者: 898756744    时间: 2020-6-3 15:35
hilsonma 发表于 2020-6-3 07:06
看一楼的代码,第42行是
bin\wimlib-imagex capture %src% %wim% --boot --check

大侠,加了之后不但没有清除wim1文件夹,还没有重新打包成的wim文件。
作者: hilsonma    时间: 2020-6-3 15:48
898756744 发表于 2020-6-3 15:35
大侠,加了之后不但没有清除wim1文件夹,还没有重新打包成的wim文件。

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

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

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

好的,谢谢啦
作者: kuer    时间: 2020-6-16 15:19
大佬 请问从微PE提出的WEPE64.WIM,用您此脚本 既不能解包 也不能打包,是什么原因?
作者: hilsonma    时间: 2020-6-16 16:51
kuer 发表于 2020-6-16 15:19
大佬 请问从微PE提出的WEPE64.WIM,用您此脚本 既不能解包 也不能打包,是什么原因?

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

你可以使用7z手工解包到wim1文件夹,然后就可以在wim1文件夹中修改并使用脚本重新打包了。
作者: kuer    时间: 2020-6-16 20:44
hilsonma 发表于 2020-6-16 16:51
我刚才将附件下载试了一下,确实不能解包新的WEPE64.WIM
是wimlib无法解析新的xml,我现在不能修改脚本 ...

刚才试了一下,用7z手工解包到wim1文件夹   也不能使用脚本重新打包!用大漠孤鹰的Wim映像工具解包打包没问题!
作者: macowen    时间: 2020-8-20 11:36
谢谢楼主分享!!!
作者: shcheng    时间: 2020-12-24 19:38
多谢分享!
作者: likehell    时间: 2020-12-29 01:01
请教,wimlib热能备份打包的wim文件能否制作成能引导启动的iso PE系统?
作者: hilsonma    时间: 2020-12-29 04:22
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
作者: likehell    时间: 2020-12-29 12:48
hilsonma 发表于 2020-12-29 04:22
热备份打包得到的wim文件是备份包,里面的注册表等设置内容都是对应于操作系统分区(一般是C盘)的,所以就 ...

好的,明白了。谢谢!
作者: wilot    时间: 2021-1-1 12:42
谢谢分享
作者: 386    时间: 2021-1-13 15:55
好东西 多谢分享
作者: iloveu1234    时间: 2021-3-14 06:58
好东西,谢谢分享
作者: 1967906656    时间: 2021-3-16 21:16
VVVVIP卡
作者: zyy    时间: 2021-10-26 23:34
谢谢分享
作者: cxincn    时间: 2021-10-28 13:49

感谢分享。
作者: cclgoo    时间: 2022-2-27 06:22
不知能不能再整上挂载和卸载的BAT
作者: hilsonma    时间: 2022-2-27 15:22
cclgoo 发表于 2022-2-27 06:22
不知能不能再整上挂载和卸载的BAT

挂载其实就是解包到某临时文件夹,卸载其实就是将挂载使用的临时文件夹重新打包后删除临时文件夹
作者: 201196321478    时间: 2022-3-22 10:50
请教一下楼主,,如果用来打包制作PE映像的话,需要像imagex那样加/BOOT参数吗  或是其它参数
还有您的压缩包里的是32还是64位的
作者: hilsonma    时间: 2022-3-23 08:30
201196321478 发表于 2022-3-22 10:50
请教一下楼主,,如果用来打包制作PE映像的话,需要像imagex那样加/BOOT参数吗  或是其它参数
还有您的压 ...

制作pe要加 --boot参数,参见1楼代码第42行。
我也没有区分是32还是64位,
作者: 201196321478    时间: 2022-3-23 12:16
hilsonma 发表于 2022-3-23 08:30
制作pe要加 --boot参数,参见1楼代码第42行。
我也没有区分是32还是64位,

感谢回复,,明白了
作者: 泮安宁    时间: 2022-5-12 00:34
请问大佬,wimlib解包的这三个阶段什么意思,
  1. Creating files: 3375 of 3375 (100%) done
  2. Extracting file data: 640 MiB of 640 MiB (100%) done
  3. Applying metadata to files: 3375 of 3375 (100%) done
复制代码
我看好像在Creating files阶段文件已经解包了,剩下两个阶段是干什么的呢

作者: 河上雨    时间: 2022-8-27 16:46
学习学习,增长知识。
作者: yuanjing    时间: 2022-9-12 12:25
进来学习一下
作者: geciwang    时间: 2022-9-12 15:18
感谢分享
作者: 香国妙手    时间: 2022-9-27 09:14
谢谢分享
作者: ha2474984    时间: 2022-11-18 22:58

感谢分享 收藏了
作者: cfq001    时间: 2022-11-19 16:31
谢谢分享
作者: ak009    时间: 2022-12-6 16:10
感谢分享
作者: 2023    时间: 2023-3-5 17:12
谢谢分享!
作者: yjkl    时间: 2023-3-5 21:46
学习学习
作者: hanlu    时间: 2023-3-26 21:25
支持一个
作者: hanchi123    时间: 2023-4-21 21:30
感谢分享 收藏了
作者: zhangjiti    时间: 2023-4-24 10:47
谢谢提供分享
作者: Nonni    时间: 2023-4-24 12:23
thanks for sharing
作者: hanchi123    时间: 2023-4-26 09:10
感谢分享
作者: seeimpact153    时间: 2023-4-28 01:11
谢谢分享
作者: 湖南彭于晏    时间: 2023-5-17 09:16
签到签到
作者: 湖南彭于晏    时间: 2023-5-18 10:24
qdqd
作者: 湖南彭于晏    时间: 2023-5-18 10:24
qdqdqd
作者: lianwei    时间: 2023-5-18 10:54
虽然看不懂,准备测试一下,感谢分享
作者: nb99    时间: 2023-7-2 16:12
感谢分享
作者: a2223843880    时间: 2023-7-6 08:43
感谢分享
作者: zncs520    时间: 2023-7-24 16:35
7zip可以直接编辑修改wim
作者: 2011jifeiyun    时间: 2023-8-2 12:16
学习了 非常感谢
作者: yzicee    时间: 2023-8-3 22:47
先收藏起来,再慢慢学习大佬写的脚本
作者: CAIT    时间: 2023-8-15 23:52
本帖最后由 CAIT 于 2023-8-16 00:00 编辑

  对文件夹进行WIM打包那段稍做优化调整,即可将绿色软件做成wimboot指针文件使用。具体,在第39行增加两行,原第42行命令选项调整为--wimboot。即:

  如此,生成的%folderName%.wim通过info查看,其WIMBoot compatible为yes,即可通过DISM /Apply-Image /ImageFile:%folderName%.wim /Index:1 /ApplyDir:%folderName% /WIMBOOT做成指针文件,减少占用,方便使用。

作者: CAIT    时间: 2023-8-17 00:15
CAIT 发表于 2023-8-15 23:52
  对文件夹进行WIM打包那段稍做优化调整,即可将绿色软件做成wimboot指针文件使用。具体,在第39行增加两 ...
  1. 44. bin\wimlib-imagex capture %src% %wim% --wimboot
复制代码
还可以再优化下,压缩比更高一点
  1. 44. bin\wimlib-imagex capture %src% %wim% --wimboot --compress=lzx:100 --check
复制代码



作者: sulong    时间: 2023-8-20 11:36
学习一下解包,先谢楼主分享
作者: yaoguoguo820    时间: 2023-8-25 08:43
123
作者: ywtvag    时间: 2023-8-25 10:51
感谢分享
作者: softwarezheng    时间: 2023-8-27 08:46
谢谢楼主谢谢楼主谢谢楼主谢谢楼主谢谢楼主
作者: iaanqrm    时间: 2023-8-27 09:09

作者: ft2213795    时间: 2023-9-17 14:45
下载学习下
作者: 2010hejunxin    时间: 2023-9-20 15:21
PE下的好工具
作者: 2010hejunxin    时间: 2023-9-20 15:22
好东西 多谢分享了
作者: 邓国印    时间: 2023-10-11 20:59
大佬您好!没有wimlib.cmd这个文件。

Screenshot_1.png (39.19 KB, 下载次数: 60)

Screenshot_1.png

作者: fxl0571    时间: 2023-11-15 20:39
感谢分享!
作者: atang    时间: 2023-11-16 19:26
感谢分享
作者: IT小森    时间: 2023-11-17 13:54
感谢分享
作者: Vegetabhl    时间: 2023-11-23 15:20
感谢分享
作者: Vegetabhl    时间: 2023-11-23 15:21
谢谢分享
作者: gielong    时间: 2023-12-1 11:55
感謝分享
作者: eCAN    时间: 2023-12-1 11:58
学习
作者: mhk018    时间: 2024-1-19 16:55
真给力!
作者: tilltotell007    时间: 2024-2-12 10:08
收藏了,以后用得到




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3