![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 12:30 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 发布俺自己写的 cmd自动更新模块 800字节 |
| 可打印版本 831 / 3 |
| 第1楼 sl543001 | 发表于 2009-09-30 20:11 |
| 中级用户 发帖 225 积分 499 | |
|
发布俺自己写的 cmd自动更新模块 800字节 俺偶尔写个CMD脚本,发给别人后又有了更新,每次都追着别人更新脚本确实很烦!
但有时新版本的脚本有必要的新功能,或是旧版有BUG,没有更新那更烦! 于是乎,俺写了一个CMD脚本的自更新模块,插入到原来代码里,从此告别追人更新的烦恼! ============================================== 说明:新版脚本和脚本列表以txt格式存放于服务器,客户脚本执行时先下载脚本列表从中对照版本后根据脚本列表下载更新文件替换旧文件并执行新文件! 更新模块变量统一使用soyd开头,标签统一使用down开头,注意不要冲突! 更新模块代码控制在30行以下,代码量控制在800字节,示例脚本也不足1KB,不会给脚本增加太多负担! 脚本列表当前3个必要行: jy=930 wj=down.txt mz=down 注意:列表每部分必须以mz=**结尾 自动更新模块3个必要定义变量 soydb定义当前文件版本,用于与jy(soydjy)对比是否需要更新 soydw定义脚本更新服务器目录 soydm定义需要被更新的目标脚本名(可以是脚本本身的名字,也可用示例脚本更新其它脚本) 自动更新模块使用方法:可以嵌入其它代码,也可以作为单独文件用于更新其它脚本! 如有任何意见建议问题等,欢迎一起探讨QQ:354324773 ============================================== 脚本列表示例文件(downLB.txt) # SYBN CMD 脚本更新列表 # 本列表提供用于对照更新SYBN的脚本信息. # 列表创建时间: 2009年9月28日 15:51 # 列表更新时间: 2009年9月30日 19:56 # 列表更新内容: 创建列表 # 列表网络地址: http://down.lpfcn.cn/cmddown/downLB.txt # 服务器所在地: (国外)www.prohosting.com # -------------------------------------------------- #更新脚本 bh=0 rq=2009-9-28 sj=19:56 dx=9377 jy=930 wj=down.txt yt=更新脚本 mz=down # -------------------------------------------------- #测试脚本 bh=1 rq=2009-9-28 sj=16:00 dx=0 jy=928 wj=cs.txt yt=测试脚本 mz=cs # -------------------------------------------------- ============================================== 更新模块示例脚本(down.cmd) @echo off color F2 set soydb=1 set soydw=http://down.lpfcn.cn/cmddown/ set soydm=down set soydp=Y set /p soydp=是否更新?: if "%soydp%" == "N" goto :EOF if "%soydp%" == "n" goto :EOF call :downlb pause goto :EOF :downlb ::校验 if exist downLB.txt del downLB.txt call :downvb %soydw%downLB.txt downLB.txt if exist downLB.txt for /f "eol=# tokens=1" %%a in (downLB.txt) do set soyd%%a &&if "%%a" == "mz=%soydm%" goto :downgx goto :EOF :downvb ::下载 echo on error resume next:Set P=CreateObject("Microsoft.XMLHTTP"):P.Open "GET","%1",0:P.Send() >TMP.vbs echo Set G=CreateObject("ADODB.Stream"):G.Mode=3:G.Type=1:G.Open():G.Write(P.responseBody):G.SaveToFile "%2",2 >>TMP.vbs call TMP.vbs &&del TMP.vbs goto :EOF :downgx ::更新 if %soydjy% gtr %soydb% call :downvb %soydw%%soydwj% %soydwj% if exist %soydm%.cmd echo 更新成功!&&cmd /D /C del %soydm%.cmd ^&^&ren %soydwj% %soydm%.cmd ^&^&%soydm% goto :EOF |
|
| 第2楼 523066680 | 发表于 2009-09-30 20:19 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
哦~ 我经常备份脚本到u盘,以前不懂,用覆盖式的复制
后来才发现xcopy可以实现更新式的复制,如果有新的,就更新,没有的 就写入。 xcopy的/d参数 |
|
| 第3楼 sl543001 | 发表于 2009-09-30 20:27 |
| 中级用户 发帖 225 积分 499 | |
|
有好多命令简单实用xcopy就是其中之一,
另外用copy /b a.ipg+b.rar c.jpg 命令隐藏rar文件还可以逃过免费空间的文件类型限制! |
|
| 第4楼 sl543001 | 发表于 2009-10-01 11:46 |
| 中级用户 发帖 225 积分 499 | |
|
正在计划加入多文件更新支持!
现有版本只能更新单个文件,争取加入多文件更新,一次性更新多个文件,用以多文件脚本的更新支持! 然后再修改校验部分,加入文件大小校验,完成后俺再发上来! [ Last edited by sl543001 on 2009-10-1 at 16:40 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |