无忧启动论坛

标题: Snapshot备份还原 V2.0.2025.0512 [打印本页]

作者: rzp428    时间: 2025-5-10 17:15
标题: Snapshot备份还原 V2.0.2025.0512
本帖最后由 rzp428 于 2025-5-12 21:45 编辑


Snapshot备份还原 V2.0.2025.0512

        1、调整界面;

        2、优化代码。














Snapshot备份还原_2025-5-12_21:41:35_A.7z (1.25 MB, 下载次数: 314)



Snapshot备份还原 V2.0.2025.0510

        首先感谢Bluebells老师的辛苦制作,在Bluebells老师的【Drive Snapshot 分区备份还原 空壳 [开源] 】基础上,本人学习制作了本程序。

        再次谢谢Bluebells老师!!!
















Snapshot备份还原_2025-5-10_17:3:43_A.7z (1.23 MB, 下载次数: 435)






作者: 2012_maxbo    时间: 2025-5-10 17:35
能顺便显示调用的snap版本就更好了
作者: rzp428    时间: 2025-5-10 17:37
2012_maxbo 发表于 2025-5-10 17:35
能顺便显示调用的snap版本就更好了

界面右下角的蓝字就是啊!
作者: 2012_maxbo    时间: 2025-5-10 17:46
rzp428 发表于 2025-5-10 17:37
界面右下角的蓝字就是啊!

老眼昏花,没注意看
作者: dayeye    时间: 2025-5-10 17:57
抄作业挺快的!!!
作者: linkz08    时间: 2025-5-10 18:01
感谢分享,有此工具win下备份相当方便!这边有一个PE中还是点击路径没反应,无法下一步操作!用另一简易版壳反而正常,有些PE正常,我这PE不知道缺了什么!
作者: HIKARI破名都占    时间: 2025-5-10 18:08
111
作者: tanay88    时间: 2025-5-10 18:23
你又更新了
作者: tdqk003    时间: 2025-5-10 18:24
感谢大佬付出,大佬可不可不强制自动重启,能不能给个选项,谢谢
作者: 2275385864    时间: 2025-5-10 18:30
这个还原后会自动修复引导吗
作者: leosp    时间: 2025-5-10 18:48
大佬问下这个软件还原系统之后会自动扫描检查磁盘有必要吗,可以去掉嘛?
作者: 小灰兔    时间: 2025-5-10 18:59
感谢分享
作者: rzp428    时间: 2025-5-10 19:14
leosp 发表于 2025-5-10 18:48
大佬问下这个软件还原系统之后会自动扫描检查磁盘有必要吗,可以去掉嘛?

那是系统所为,并非本程序设计。
作者: rzp428    时间: 2025-5-10 19:15
2275385864 发表于 2025-5-10 18:30
这个还原后会自动修复引导吗

除了界面和备份文件名,其他均与1.0.2025.0508相同。
作者: fzp070    时间: 2025-5-10 19:37
很棒的备份还原工具,辛苦楼主持续更新!
作者: xhsyszw    时间: 2025-5-10 19:37
感谢分享
作者: 2275385864    时间: 2025-5-10 19:41
rzp428 发表于 2025-5-10 19:15
除了界面和备份文件名,其他均与1.0.2025.0508相同。

好的,谢谢
作者: wc67    时间: 2025-5-10 19:54
感谢分享,
作者: sd65690094    时间: 2025-5-10 20:06
感谢分享
作者: 369258147qqq    时间: 2025-5-10 20:13
谢谢分享,,,,,,
作者: yslf1007    时间: 2025-5-10 20:33
该版本经过优化界面漂亮方便直观多了
作者: 培训资料    时间: 2025-5-10 20:47
谢谢分享
作者: wn168cn@163.com    时间: 2025-5-10 20:49
感谢分享
作者: qqww5566    时间: 2025-5-10 21:03
看看。。。。。。。。。。。。。
作者: SGZOU    时间: 2025-5-10 21:04
感谢更新
作者: 2011990726    时间: 2025-5-10 22:11
谢谢分享
作者: 2011lanz    时间: 2025-5-10 22:19
本帖最后由 2011lanz 于 2025-5-10 22:22 编辑

很好的工具,谢谢大佬整合、分享!谢谢Bluebells老师
作者: in9    时间: 2025-5-11 00:08
谢谢更新分享!
作者: nervy4383    时间: 2025-5-11 00:29
感谢分享
作者: aimei2018    时间: 2025-5-11 09:05
感谢分享
作者: asliks    时间: 2025-5-11 13:13
感谢分享,简单易懂。
作者: 自然而然    时间: 2025-5-11 15:25
感谢分享,新界面不错啊,建议增加压缩率选择方式,方便自己选择自己的体积!!
作者: SGZOU    时间: 2025-5-11 15:44
rzp428 发表于 2025-5-10 19:14
那是系统所为,并非本程序设计。

没做实体机测试,看界面新版是不是缺少默认C盘,请添加备份、还原默认C.
作者: denslin    时间: 2025-5-11 16:55
感谢分享
作者: nervy4383    时间: 2025-5-11 17:42
有些小问题,不会自动选C盘,最终备份完毕弹出的提示框过大,很割裂
作者: shiping803    时间: 2025-5-11 18:02
谢谢楼主的分享,我一直在用德国的“DriveSnapShot”,试试看那个好用
作者: ntcjq999    时间: 2025-5-11 18:25
这又是什么版本
作者: frzz    时间: 2025-5-11 18:44
感谢分享!使用方便
作者: syj163    时间: 2025-5-11 19:29
2.0版下载收藏,感谢分享
作者: 自然而然    时间: 2025-5-11 19:47
建议完善下,弹窗提示太大了,应该用小框窗口提示也行,增加默认选C盘备份。
作者: mxl    时间: 2025-5-11 21:05
增加了压缩选项

2025-05-11_205817.jpg (57.92 KB, 下载次数: 4)

增加了压缩选项

增加了压缩选项

作者: 自然而然    时间: 2025-5-11 21:59
mxl 发表于 2025-5-11 21:05
增加了压缩选项

不分享下?
作者: wondaol    时间: 2025-5-11 22:13
又有更新了嘛
作者: 漠漠无语    时间: 2025-5-12 14:06
最近跟新挺快 非常完善了
作者: nbhai2018    时间: 2025-5-12 14:16
大版本号更新,支持一下。。。
作者: 奈绪    时间: 2025-5-12 15:31
这个好工具,下载来试试。
作者: yzydys    时间: 2025-5-12 17:03
谢谢楼主分享
作者: rzp428    时间: 2025-5-12 19:18
Snapshot备份还原 V2.0.2025.0512

        1、调整界面;

        2、优化代码
作者: netfox2008    时间: 2025-5-12 19:34
本帖最后由 netfox2008 于 2025-5-12 19:55 编辑
rzp428 发表于 2025-5-12 19:18
Snapshot备份还原 V2.0.2025.0512

        1、调整界面;

新版本0512。2.选择目标分区,然后试了下,3.里面的分区列表项里选择不起作用了。个人感觉分区列表应该也在2.里面,可以下拉选择,也可点选分区列表选择。
作者: renjunone    时间: 2025-5-12 19:48
又更新了
作者: nbhai2018    时间: 2025-5-12 21:06
到底是1.0版还是2.0的,关于里面写的还是1.0版。
作者: nervy4383    时间: 2025-5-12 21:10
测试了一下,效果不错,比上个版本好多了
作者: BEIKING    时间: 2025-5-12 21:43
0512 取消了 0510 磁盘刷新功能。
新版是自动刷新?
如果是自动刷新,会不会跟以前一样碰到U盘忙碌时卡界面
作者: rzp428    时间: 2025-5-12 21:53
nbhai2018 发表于 2025-5-12 21:06
到底是1.0版还是2.0的,关于里面写的还是1.0版。

谢谢提醒,已更新。
作者: rzp428    时间: 2025-5-12 21:58
BEIKING 发表于 2025-5-12 21:43
0512 取消了 0510 磁盘刷新功能。
新版是自动刷新?
如果是自动刷新,会不会跟以前一样碰到U盘忙碌时卡界 ...

新版不刷新,磁盘分区表在这里主要用来指定备份到隐藏分区,如果没有这个要求,基本可以不用,当然添加映像名称还是挺方便的,选好分区后,只需点击显示盘符即可搞定。
作者: 423dn    时间: 2025-5-12 22:25
又更新啦,真棒。。
楼主用4.9版本淘汰了4.8了,哈
作者: nervy4383    时间: 2025-5-12 22:38
rzp428 发表于 2025-5-12 19:18
Snapshot备份还原 V2.0.2025.0512

        1、调整界面;

有个小问题,当前启动软件后,如果在自动刷新结束之前就点击了选择框,那么即使刷新完毕之后,选择框依旧会是空的
作者: 423dn    时间: 2025-5-12 22:39


保存影像文件,这里要手动,输入盘符字母才可以。。。

作者: 自然而然    时间: 2025-5-12 23:23
423dn 发表于 2025-5-12 22:39
保存影像文件,这里要手动,输入盘符字母才可以。。。

这怎么行,用的不爽,还有点Sna浏览磁盘,不是保存映像??成了打开,这点努力改进下,如果能像老版本那样就不错了。
作者: 423dn    时间: 2025-5-12 23:54
自然而然 发表于 2025-5-12 23:23
这怎么行,用的不爽,还有点Sna浏览磁盘,不是保存映像??成了打开,这点努力改进下,如果能像老版本那 ...

嗯,赞同🙆‍♀️
作者: 奈绪    时间: 2025-5-13 08:33
又更新了,非常激动。
作者: fegr    时间: 2025-5-13 13:16
谢谢分享
作者: 2011lanz    时间: 2025-5-13 16:50
谢谢大佬分享!
作者: nervy4383    时间: 2025-5-13 20:24
感谢分享
作者: 12956    时间: 2025-5-15 07:51
多谢分享
作者: z_yp    时间: 2025-5-15 08:22

界面漂亮方便直观多了
作者: BEIKING    时间: 2025-5-15 11:40
楼主大佬,我钟爱这个版本界面,能不能取消还原操作必重启操作,
我在提示覆盖界面,点击取消,也被强制重启了。
如果能把之前版本的手动刷新磁盘按钮恢复更好,有时候还是有需要的
作者: kxingsoft    时间: 2025-5-15 12:01
感谢分享
作者: BEIKING    时间: 2025-5-15 12:43
除强制重启外,,还有这个bug





作者: 自然而然    时间: 2025-5-15 12:53
确实有这种bug,恢复过程中有个故障,给强制式重启了,可以改下0508版本不
作者: BEIKING    时间: 2025-5-15 21:44
本帖最后由 BEIKING 于 2025-5-15 22:31 编辑

楼主大佬请教下,在你的基础上,我尝试修改。
目前是取消了还原操作后的BCDEdit写引导和重启操作,
加入刷新磁盘,调用CALL Reset解决切换操作后的分区丢失(不知道这种方式解决是否合适)
主要还是请教你,刷新磁盘怎么连带更新目标分区列表。
这是我修改的代码:

  1. #code=936T950
  2. @TEAM ENVI^ EnviMode=1| ENVI^ ForceLocal=1
  3. TEAM SET$ &NL=0d 0a| SET$ &TAB=09
  4. ENVI &::MEXE=%&CurDir%\Snapshot.exe
  5. IFEX $%&bX64%=0,! IFEX %&CurDir%\Snapshot64.exe,ENVI &::MEXE=%&CurDir%\Snapshot64.exe
  6. NAME FileName=%&::MEXE%
  7. ENVI ?,&DSVer=FVER,%&::MEXE%

  8. _SUB WIN1,W500H535,Snapshot 备份还原,,#1,
  9.     GROU GROU1,L10T5W475H55,
  10.     LABE LABE1,L20T19W145H16,1. 请选择将要执行的操作:,,,
  11.     RADI RADI1,L50T35W85H20,完整备份(&F),CALL ControlSwitch,1,0
  12.     RADI RADI2,L200T35W85H20,差异备份(&D),CALL ControlSwitch,0,0
  13.     RADI RADI3,L350T35W85H20,还原分区(&R),CALL ControlSwitch,0,0

  14.     GROU GROU2,L10T63W475H42,
  15.     LABE LABE2,L18T80W350H18,2. 请选择一个目标分区:,,,
  16.     CALL ListDrive &AllDrive
  17.     ENVI PF=%&AllDrive%
  18.     LIST Partition,L160T76W318H200,%PF%,ENVI @LABE21=%Partition%,C:,

  19.     GROU GROU3,L10T110W475H310,
  20.     LABE LABE3,L18T125W350H18,,,
  21.     LABE LABE31,L36T145W3600H30,鼠标左键选择分区,双击【显示盘符】或【隐藏盘符】,可添加或删除映像文件名。,,,
  22.     IMAG IMAG2,L457T120W20H20,shell32.dll#238,CALL OnTable,
  23.     ENVI @IMAG2.MSG=0x02A1:CALL ControlTip "点击 → 刷新磁盘分区信息"
  24.     ENVI @IMAG2.MSG=0x02A3:TIPS -
  25.     SET &&TITLE=+40:序号%&TAB%+40:盘符%&TAB%=70:总大小%&TAB%=70:可用空间%&TAB%+60:分区类型%&TAB%+60:文件系统%&TAB%95:卷标
  26.     TABL TABL3,L18T165W460H150,%&TITLE%,,0x10040

  27.     ITEM -na ITEM21,L80T323W85H22,显示盘符,CALL XSPF,
  28.     ITEM -na ITEM22,L320T323W85H22,隐藏盘符,CALL YCPF,

  29.     LIST LIST31,L20T355W410H20,,,,0x4
  30.     LIST LIST321,L20T355W410H20,,,,0x4
  31.     LIST LIST322,L20T385W410H20,,,,
  32.     LIST LIST33,L20T355W410H20,,,,
  33.     ITEM -na ITEM31,L440T353W35H22,Sna,CALL PickImageFile,,
  34.     ITEM -na ITEM321,L440T353W35H22,Sna,CALL PickImageFile,,
  35.     ITEM -na ITEM322,L440T383W35H22,Hsh,PickHshFiles,,
  36.     ITEM -na ITEM33,L440T353W35H22,Sna,CALL PickImageFile,,

  37.     LABE -left LABE5,L15T440W30H15, ?,MESS+icon2 \n文件版本:Snapshot 备份还原 V2.0.2025.0512 \n\n支撑软件:Snapshot.exe、Snapshot64.exe(自适应+自决定:64位系统中 Snapshot64.exe 存在优先使用)  \n\n\n\n使用说明:\n\n1 备份分区:\n\n1.1 完整备份:【选择一个目标分区】→【指定用于保存备份的映像文件】→【执行】; \n\n1.2 差异备份:【选择一个目标分区】→【指定用于保存备份的映像文件】→【指定用于增量备份的哈希文件】→【执行】;\n\n    哈希文件(*.hsh)的生成:\n\n    【程序界面右下角蓝字】→【备份分区】→【下一步】→【高级选项】→【从完整映像创建哈希文件(H)】;\n\n2 还原分区:【选择一个目标分区】→【指定用于还原备份的映像文件】→【执行】;\n\n3 在 Win PE 下备份分区,可以实现大分区恢复到小分区。@关于 Snapshot 备份还原#OK,0xFF0000,
  38.     ENVI @LABE5.MSG=0x02A1:CALL ControlTip "点击 → 查看帮助"
  39.     ENVI @LABE5.MSG=0x02A3:TIPS -

  40.     ITEM -na ITEM4,L350T430W60H30,执行,CALL StartingBackupRestore,
  41.     ITEM -na ITEM5,L425T430W60H30,退出,EXIT FILE,

  42.     LABE+ ,L-1T470W520H1,,,
  43.     LABE -left LABE4,L5T480W350H12,,,
  44.     FIND $%&DSVer%=,! LABE -right LABE6,L350T480W140H12,%FileName% %DSVer%,EXEC %&::MEXE%,0xFF0000,
  45.     ENVI @LABE6.MSG=0x02A1:CALL ControlTip "点击 → 启动 Snapshot"
  46.     ENVI @LABE6.MSG=0x02A3:TIPS -

  47.     CALL Initialize
  48. _END

  49. CALL @WIN1

  50. _SUB OnTable
  51.     ENVI &TableInfo=
  52.     PART list disk ,&AllDisks
  53.     FORX * %&AllDisks%,&DiskNum,
  54.     {
  55.         PART list part %&DiskNum%,&AllParts
  56.         FORX * %&AllParts%,&PartNum,
  57.         {
  58.             IFEX $%&PartNum%>0,! EXIT -
  59.             TEAM ENVI &ID=| &DL=| ENVI &VS=| ENVI &VFS=| ENVI &TP=| ENVI &FS=| ENVI &VL=| ENVI &Unit1=| ENVI &Unit2=
  60.             ENVI &ID=%&DiskNum%:%&PartNum%
  61.             PART list part %&DiskNum%:%&PartNum%,&PartInfo
  62.             MSTR &TP,&VS,&DL=<3><5><8>%PartInfo%
  63.             IFEX \\?\Harddisk%&DiskNum%Partition%&PartNum%\=?,&VFS
  64.             FDRV -vol &VL,&FS=\\?\Harddisk%&DiskNum%Partition%&PartNum%
  65.             IFEX $%&VS%<1024,ENVI &Unit1=Byte
  66.             IFEX $%&VS%>1024,TEAM CALC $ &VS = %&VS% / 1024 ##2| ENVI &Unit1=KB
  67.             IFEX $%&VS%>1024,TEAM CALC $ &VS = %&VS% / 1024 ##2| ENVI &Unit1=MB
  68.             IFEX $%&VS%>1024,TEAM CALC $ &VS = %&VS% / 1024 ##2| ENVI &Unit1=GB
  69.             IFEX $%&VS%>1024,TEAM CALC $ &VS = %&VS% / 1024 ##2| ENVI &Unit1=TB
  70.             IFEX $%&VFS%<1024,ENVI &Unit2=Byte
  71.             IFEX $%&VFS%>1024,TEAM CALC $ &VFS = %&VFS% / 1024 ##2| ENVI &Unit2=KB
  72.             IFEX $%&VFS%>1024,TEAM CALC $ &VFS = %&VFS% / 1024 ##2| ENVI &Unit2=MB
  73.             IFEX $%&VFS%>1024,TEAM CALC $ &VFS = %&VFS% / 1024 ##2| ENVI &Unit2=GB
  74.             IFEX $%&VFS%>1024,TEAM CALC $ &VFS = %&VFS% / 1024 ##2| ENVI &Unit2=TB
  75.             FIND $%TP%<>GPT,ENVI &TP=MBR
  76.             ENVI &TableInfo=%&TableInfo%%&ID%%&TAB%%&DL%%&TAB%%&VS%%&Unit1%%&TAB%%&VFS%%&Unit2%%&TAB%%&TP%%&TAB%%&FS%%&TAB%%&VL%%NL%
  77.         }
  78.     }
  79.     ENVI @TABL3.Val=1*#;%&TableInfo%
  80. _END

  81. _SUB ControlTip
  82.     TEAM TIPS -| ENVI &ShowContent=
  83.     ENVI &ShowContent=%~1
  84.     ENVI @@Cur=?&CurXM;&CurYM
  85.     TIPS ,%&ShowContent%,,0,@AL%&CurXM%T%&CurYM%
  86. _END

  87. _SUB ControlSwitch
  88.     TEAM ENVI @LIST31.Visible=%RADI1.Check% | ENVI @ITEM31.Visible=%RADI1.Check%
  89.     TEAM ENVI @LIST321.Visible=%RADI2.Check% | ENVI @LIST322.Visible=%RADI2.Check% | ENVI @ITEM322.Visible=%RADI2.Check%
  90.     TEAM ENVI @LIST33.Visible=%RADI3.Check% | ENVI @ITEM33.Visible=%RADI3.Check%
  91.     IFEX $%RADI1.Check%=1,TEAM ENVI @LABE3=3. 请指定用于保存备份的映像文件: |ENVI @LIST31=D:\Snap\FullBackup.sna
  92.     IFEX $%RADI2.Check%=1,TEAM ENVI @LABE3=3. 请指定用于保存备份的映像文件及增量备份的哈希文件: |ENVI @LIST321=D:\Snap\DiffBackup.sna
  93.     IFEX $%RADI3.Check%=1,ENVI @LABE3=3. 请指定用于还原备份的映像文件:
  94.     CALL Reset
  95. _END

  96. _SUB Initialize
  97.     CALL OnTable
  98.     CALL ControlSwitch
  99.     THREAD* CALL ScanImageFiles
  100. _END

  101. _SUB ScanImageFiles
  102.     ENVI @LABE4=正在扫描本地磁盘上的 SNA 映像文件...
  103.     FORX /S:3 \*.sna,&ImageFiles,0,ENVI @LIST33.ADD=%&ImageFiles%
  104.     ENVI @LABE4=正在扫描本地磁盘上的 HSH 映像文件...
  105.     FORX /S:3 \*.hsh,&HshFiles,0,ENVI @LIST322.ADD=%&HshFiles%
  106.     FIND $%LABE4%=正在扫描本地磁盘上的 HSH 映像文件...,ENVI @LABE4=准备就绪
  107. _END

  108. _SUB PickImageFile
  109.     IFEX $%RADI1.Check%=1,
  110.     {
  111.         BROW &ImageFile,D:\*.sna,请指定用于保存备份的映像文件,映像文件(*.sna)|*.sna|,0x802
  112.         FIND $%&ImageFile%=,!
  113.         {
  114.             FEXT &FileExt=%&ImageFile%
  115.             FIND $%&FileExt%=,ENVI @LIST31.ADDSEL=%&ImageFile%.sna! ENVI @LIST31.ADDSEL=%&ImageFile%
  116.         }
  117.     }
  118.     IFEX $%RADI2.Check%=1,
  119.     {
  120.         BROW &ImageFile,D:\*.sna,请指定用于保存备份的映像文件,映像文件(*.sna)|*.sna|,0x802
  121.         FIND $%&ImageFile%=,!
  122.         {
  123.             FEXT &FileExt=%&ImageFile%
  124.             FIND $%&FileExt%=,ENVI @LIST321.ADDSEL=%&ImageFile%.sna! ENVI @LIST321.ADDSEL=%&ImageFile%
  125.         }
  126.     }
  127.     IFEX $%RADI3.Check%=1,
  128.     {
  129.         BROW &ImageFile,D:\*.sna,请指定用于还原备份的映像文件,SNA 映像文件(*.sna)|*.sna|,0x1000
  130.         FIND $%&ImageFile%=,! ENVI @LIST33.ADDSEL=%&ImageFile%
  131.     }
  132. _END

  133. _SUB PickHshFiles
  134.     BROW &HshFiles,D:\*.hsh,请指定用于差异备份的哈希文件,哈希文件(*.hsh)|*.hsh|,0x1000
  135.     FIND $%&HshFiles%=,! ENVI @LIST322.ADDSEL=%&HshFiles%
  136. _END

  137. _SUB StartingBackupRestore
  138.     LSTR Partition1=2,%Partition%
  139.     LSTR Partition2=1,%Partition%
  140.     LSTR Image_path31=2,%LIST31%
  141.     FIND $%Image_path31%=%Partition%,TEAM MESS+icon1 映像路径所在分区不能与要备份的分区相同! @提示:#OK |EXIT 1
  142.     LSTR Image_path=7,%LIST31%
  143.     TEAM EXEC =!cmd /c MD %Image_path%|SITE %Image_path%,+A+R+S
  144.     SED Partition=0,[^0-9], ,%Partition%
  145.     MSTR &P1,&P2=<1*>%Partition%
  146.     FIND $%P1%=,!TEAM  CALC #&DiskNum = %P1% + 1|ENVI Partition1=HD%&DiskNum%:%P2% |ENVI Partition2=HD%&DiskNum%_%P2%

  147.     IFEX $%RADI1.Check%=1,
  148.     {
  149.         FIND $%LIST31%=,TEAM MESS+icon6 保存备份的映像文件不能为空!@错误 #OK *-5000| EXIT _SUB
  150.         ENVI &OParam=-R -G -L0 -o
  151.         ENVI &BParam=%Partition1% "%LIST31%"
  152.         MESS+icon0 即将把分区 %Partition1% 备份于 %LIST31% 文件中。 @完整备份确认 #OKC $C
  153.         FIND $%YESNO%=CANCEL,EXIT _SUB
  154.         TEAM ENVI @LABE4=正在完整备份分区,请稍等...| ENVI @ITEM21.Enable=0| ENVI @ITEM22.Enable=0| ENVI @ITEM31.Enable=0| ENVI @ITEM321.Enable=0| ENVI @ITEM33.Enable=0| ENVI @ITEM4.Enable=0| ENVI @ITEM5.Enable=0
  155.         EXEC -wait %&::MEXE% -Gx -!resize %Partition1%
  156.         EXEC -wait %&::MEXE% %&BParam% %&OParam%
  157.         EXEC -wait %&::MEXE% -Gx -Y --resize %Partition1% 9999999999999

  158.         DATE
  159.         //%CurDate%中,结果可能是"2024-3-28|4|18:10:36.158"
  160.         SED CurDate=0,[^0-9], ,%CurDate%
  161.         MSTR &C1,&C2,&C3,&C4,&C5,&C6,&C7,&C8=<1*>%CurDate%
  162.         ENVI TimeName=%C1%-%C2%-%C3%_%C5%-%C6%-%C7%

  163.         NAME Image_FileName=%LIST31%
  164.         FILE %Image_path%\%Image_FileName%.sna>>%Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna
  165.         IFEX %Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna,MESS+icon2 磁盘分区完整备份完毕!其备份文件为:%Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna。 @提示:#OK
  166.         IFEX %Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna,! MESS+icon2 磁盘分区完整备份出错! @提示:#OK
  167.         SITE %Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna,+A+R+S

  168.         ENVI @LIST33.ADDSEL=%LIST31%
  169.     }
  170.     IFEX $%RADI2.Check%=1,
  171.     {
  172.         FIND $%LIST321%=,TEAM MESS+icon6 保存备份的映像文件不能为空!@错误 #OK *-5000| EXIT _SUB
  173.         FIND $%LIST322%=,TEAM MESS+icon6 差异备份的哈希文件不能为空!@错误 #OK *-5000| EXIT _SUB
  174.         ENVI &OParam=-R -G -L0
  175.         ENVI &BParam=%Partition1% "%LIST321%" -h"%LIST322%"
  176.         MESS+icon0 即将把分区 %Partition1% 备份于 %LIST321% 文件中。@差异备份确认 #OKC $C
  177.         FIND $%YESNO%=CANCEL,EXIT _SUB
  178.         TEAM ENVI @LABE4=正在差异备份分区,请稍等...| ENVI @ITEM21.Enable=0| ENVI @ITEM22.Enable=0| ENVI @ITEM31.Enable=0| ENVI @ITEM321.Enable=0|ENVI @ITEM322.Enable=0| ENVI @ITEM33.Enable=0| ENVI @ITEM4.Enable=0| ENVI @ITEM5.Enable=0
  179.         EXEC -wait %&::MEXE% -Gx -!resize %Partition1%
  180.         EXEC -wait %&::MEXE% %&BParam% %&OParam%
  181.         EXEC -wait %&::MEXE% -Gx -Y --resize %Partition1% 9999999999999

  182.         DATE
  183.         //%CurDate%中,结果可能是"2024-3-28|4|18:10:36.158"
  184.         SED CurDate=0,[^0-9], ,%CurDate%
  185.         MSTR &C1,&C2,&C3,&C4,&C5,&C6,&C7,&C8=<1*>%CurDate%

  186.         ENVI TimeName=%C1%-%C2%-%C3%_%C5%-%C6%-%C7%

  187.         NAME Image_FileName=%LIST321%
  188.         FILE %Image_path%\%Image_FileName%.sna>>%Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna
  189.         IFEX %Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna,MESS+icon2 磁盘分区差异备份完毕!其备份文件为:%Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna。 @提示:#OK
  190.         IFEX %Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna,! MESS+icon2 磁盘分区差异备份出错! @提示:#OK
  191.         SITE %Image_path%\%Image_FileName%_%TimeName%_%Partition2%.sna,+A+R+S
  192.         ENVI @LIST33.ADDSEL=%LIST321%
  193.     }
  194.     IFEX $%RADI3.Check%=1,
  195.     {
  196.         IFEX %LIST33%,! TEAM MESS+icon6 您尚未指定映像文件或指定的映像文件不存在!@错误 #OK *-5000| EXIT _SUB
  197.         LSTR OsRoot=1,%SystemRoot%
  198.         ENVI WinOS=%&::MEXE% --schedule %Partition1% "%LIST33%" --autoreboot:success -G
  199.         ENVI PeOS=%&::MEXE% "%LIST33%" %Partition1% -G
  200.         FIND $%OsRoot%=C, ENVI RunEXEC1=%WinOS% !ENVI RunEXEC1=%PeOS%
  201.         MESS+icon1 即将把映像文件 %LIST33% 还原至分区 %Partition1% 中。@还原确认 #OKC $C
  202.         FIND $%YESNO%=CANCEL,EXIT _SUB
  203.         TEAM ENVI @LABE4=正在还原分区,请稍等...| ENVI @ITEM21.Enable=0| ENVI @ITEM22.Enable=0| ENVI @ITEM31.Enable=0| ENVI @ITEM321.Enable=0| ENVI @ITEM33.Enable=0| ENVI @ITEM4.Enable=0| ENVI @ITEM5.Enable=0
  204.         EXEC -wait %RunEXEC1%
  205.         EXEC*  --cmd::5000:OnNSAMsg  &YDXF=!bcdboot %&DrvLtr%\windows /l zh-cn
  206.         FIND $%&YDXF%=已成功创建启动文件。,!EXEC* --cmd::5000:OnNSAMsg &YDXF=!bcdboot %&DrvLtr%\windows /l zh-cn /s %&DrvLtr% /f ALL
  207.         // EXEC =!cmd /c bcdedit.exe /set {default} bootmenupolicy legacy
  208.         // EXEC =!cmd /c bcdedit.exe /timeout 5
  209.         // EXEC =shutdown -r -t 0
  210.     }
  211.     CALL OnTable
  212.     CALL Reset
  213.     TEAM ENVI @LABE4=准备就绪| ENVI @ITEM21.Enable=1| ENVI @ITEM22.Enable=1| ENVI @ITEM31.Enable=1| ENVI @ITEM321.Enable=1| ENVI @ITEM322.Enable=1| ENVI @ITEM33.Enable=1| ENVI @ITEM4.Enable=1| ENVI @ITEM5.Enable=1
  214. _END

  215. _SUB ListDrive
  216.     ENVI &PartsList=
  217.     ENVI &WinsList=
  218.     PART list disk ,&DiskList
  219.     FORX * %DiskList%,&DiskNum,
  220.     {
  221.         PART list part %DiskNum%,&PartList
  222.         FORX * %PartList%,&PartNum,
  223.         {
  224.             FIND $%PartNum%=0,EXIT -
  225.             LSTR &aStr=1,%PartNum%
  226.             FIND [ $ "%aStr%"="-" | $ "%aStr%"="=" | $ "%aStr%"="@" ],EXIT -
  227.             PART list part %DiskNum%:%PartNum%,&PartInfo
  228.             MSTR &Letter=<8>%PartInfo%
  229.             FIND $%Letter%=,ENVI &PartsList=%PartsList%|%DiskNum%:%PartNum%!
  230.             {
  231.                 ENVI &PartsList=%PartsList%|%Letter%
  232.                 IFEX %Letter%\Windows\System32\winload.exe,ENVI &WinsList=%WinsList%%Letter%\Windows|
  233.             }
  234.         }
  235.     }
  236.     ENVI-ret %~1=%PartsList%
  237.     ENVI-ret %~2=%WinsList%
  238. _END

  239. _SUB XSPF
  240.     TEAM ENVI @TABL3.Sel=?&&Sel| ENVI @TABL3.Val=?%Sel%.1;&&V1| ENVI @TABL3.Val=?%Sel%.2;&&V2| ENVI @TABL3.Val=?%Sel%.6;&&V6
  241.     IFEX $1>%&Sel%,TEAM MESS+icon6 您尚未选择一个分区!@错误 #OK *-5000| EXIT
  242.     FIND $%&V6%=RAW,TEAM MESS+icon6 RAW文件系统不能作为映像保存分区!@错误 #OK *-5000| EXIT
  243.     ENVI &Options=%&V1%
  244.     SHOW %&Options%
  245.     ENVI @LIST31.ADDSEL=%&V2%\Snap\FullBackup.sna
  246.     ENVI @LIST321.ADDSEL=%&V2%\Snap\DiffBackup.sna
  247.     CALL OnTable
  248. _END

  249. _SUB YCPF
  250.     TEAM ENVI @TABL3.Sel=?&&Sel| ENVI @TABL3.Val=?%Sel%.1;&&V1| ENVI @TABL3.Val=?%Sel%.2;&&V2| ENVI @TABL3.Val=?%Sel%.6;&&V6
  251.     IFEX $1>%&Sel%,TEAM MESS+icon6 您尚未选择一个分区!@错误 #OK *-5000| EXIT
  252.     ENVI &Options=%&V1%
  253.     SHOW - %&Options%
  254.     ENVI @LIST31.DEL=%&V2%\Snap\FullBackup.sna
  255.     ENVI @LIST321.DEL=%&V2%\Snap\DiffBackup.sna
  256.     CALL OnTable
  257.     CALL Reset
  258. _END

  259. // 【公共设置】
  260. _SUB Reset
  261.     ENVI @Partition=C:
  262.     ENVI @Image_path=D:
  263.     ENVI @LIST31=D:\Snap\FullBackup.sna
  264.     ENVI @LIST321=D:\Snap\DiffBackup.sna
  265. _END
复制代码



作者: 怀中猫chat    时间: 6 天前
感谢分享




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