无忧启动论坛

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

[分享] 保存或恢复变量的简易脚本

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-30 19:46:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. !BAT
  2. debug 0
  3. cat --locate=!BATSAVEVAR --length=11 (md)0x3800+10 && goto :restore
  4. echo !BATSAVEVAR > (md)0x3800+10
  5. debug 1
  6. set | call :savevar=
  7. debug 0
  8. exit
  9. :savevar
  10. if #%1==# exit
  11. echo set %1==%2 >> (md)0x3800+10
  12. shift
  13. shift
  14. goto :savevar
  15. :restore
  16. (md)0x3800+10
  17. exit
复制代码
话不多说,懂得用的,就拿去用。

[ 本帖最后由 zxw 于 2011-5-30 19:49 编辑 ]
9#
 楼主| 发表于 2011-6-2 11:27:50 | 只看该作者

回复 #8 tuxw 的帖子

呵,抛砖引玉,学习了。
回复

使用道具 举报

8#
发表于 2011-6-2 03:55:03 | 只看该作者
直接保存65个扇区是最简单的,恢复也容易

如果计较空间的话,可以用下面的代码,几乎不点一个多余的字节,缺点是不能保存内置变量还要用到2个外部命令,但现在wenv已经很少人用了,不保存内置变量也没关系
  1. !BAT
  2. if "%1"=="" exit
  3. set > (md)0x300+65
  4. echo !BAT > (md)0x3000+66
  5. wenv for /f "delims=" %i in ( (md)0x300+65 ) do echo set %i >> (md)0x3000+66
  6. wenv find -c -e -r \r\n (md)0x3000+66 ]]& set len=${?_WENV}
  7. if exist %1 && fat del %1
  8. fat mkfile size=%len% %1
  9. dd if=(md)0x3000+66 of=%1 bs=1 count=%len%
复制代码
用法: ../save.bat  (fd0)/var.bat
(fd0)需要可写,再运行 (fd0)/var.bat就恢复了。
一般情况下这个(fd0)也还是在内存中,也不一定可靠的,多一重保障而已

[ 本帖最后由 tuxw 于 2011-6-2 15:40 编辑 ]

SAVE.rar

291 Bytes, 下载次数: 21, 下载积分: 无忧币 -2

回复

使用道具 举报

7#
发表于 2011-5-31 11:42:37 | 只看该作者

回复 #6 zhaohj 的帖子

这个中间有可能是空的,最保险的是使用一个空白的文件来备份,不过因为设计的关系,备份需要比较大的空间(备份一个是65个扇区太概是33KB)
回复

使用道具 举报

6#
发表于 2011-5-31 11:31:02 | 只看该作者
这个请教下C大比较放心,应该有个内存地址是读取变量数的。比如变量数是N,只要保存(md)0x228+(n+1),n<=63
回复

使用道具 举报

5#
 楼主| 发表于 2011-5-30 23:55:14 | 只看该作者

回复 #4 zhaohj 的帖子

这个我也考虑过,方法应该更简单,但觉得占用扇区太多。

[ 本帖最后由 zxw 于 2011-5-31 00:00 编辑 ]
回复

使用道具 举报

4#
发表于 2011-5-30 23:46:57 | 只看该作者
内存变量最多是64个,每个变量占8个字节,即1个扇区,512字节
变量值占一个扇区即512字节。故共65个扇区。
变量及变量值放在(md)0x228的65个扇区,即(md)0x228+65
只要把这段内存保存,可能更加简单。
回复

使用道具 举报

3#
 楼主| 发表于 2011-5-30 23:22:36 | 只看该作者

回复 #2 zhaohj 的帖子

我想内存中保存的可以作为跳板,可以复制到可靠的空白文件中去。
回复

使用道具 举报

2#
发表于 2011-5-30 22:24:09 | 只看该作者
先保存,那你能保证恢复时7M处不被破坏?
我想这个只有自己才知道,放在内存中总是不放心的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-10 19:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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