打印本页〗〖打印选项
网吧的游戏自动更新“系统”

网吧的游戏自动更新“系统”
只有两个批处理文件,看看适用吗:)


客户机文件:
奇迹.bat
@echo off
net use z: \\jjy-y3p897yw3v1\gameup /yes >nul
start /m /w z:\chkupdate.bat z: d:\奇迹 qj >nul
net use * /delete /yes >nul
d:
cd \奇迹
main.exe

服务器端自动检测批处理:
chkupdate.bat
@echo off
%1
cd \游戏更新
for %%a in (%3*.) do if not exist %2\%%a set flag=%%a
if %flag%!==! goto end
echo y|copy %1\游戏更新\%flag% %2 >nul
if exist %1\游戏更新\%flag%.exe start /w %1\游戏更新\%flag%.exe >nul
:end

就这些,能不能看懂?huhu~~~~
结合winrar使用。

时间不多,大体说一下,也请同行指点:
服务器端:
目录gameup共享为只读,里面有一个文件,即:chkupdate.bat,这是一个通过的检查游戏更新的批处理文件。在gameup目录下有一“游戏更新”目录,所有的游戏更新包全在这里面。文件命名规则(以奇迹为例):
qj085 (此文件为标志文件,注册没有后缀名,此处此文件以应:奇迹0.85版)
qj085.exe (此文件为winrar压缩包,根据不同游戏的更新情况自己制作,具体请看winrar说明)

如果还有更新文件,比如奇迹0.90,只要再加qj090和qj090.exe文件即可。

奇迹.bat
@echo off
rem 下面这一行是把服务器上的gameup目录映射为驱动器z
net use z: \\jjy-y3p897yw3v1\gameup /yes >nul
rem 下面这一行是调用服务器的chkupdate.bat,后面有三个参数,第一个(此处为z),告诉chkupdate.bat游戏更新文件所在的地方,第二个参数(d:\奇迹),告诉chkupdate.bat要与哪个地方的游戏进行对比更新,第三个参数(qj),告诉chkupdate.bat游戏更新包的标志文件的前两个字母,也算是一个“标志”了。
start /m /w z:\chkupdate.bat z: d:\奇迹 qj >nul
rem 下面这一行,取消网络映射。
net use * /delete /yes >nul
rem 下面三行,进入具体的游戏。
d:
cd \奇迹
main.exe


chkupdate.bat
@echo off
rem 以下两行,进入游戏更新包所在的目录,对应的,此处为:z:\游戏更新
%1
cd \游戏更新
rem 下面一行,检测客户机的游戏是否需要更新。是以标志文件(此处为qj*)作为判断依据的。如果客户机不存在标志文件,说明没有更新,就给变量flag一个值,此值为标志文件名,也即是要更新的版本,比如为:qj085
for %%a in (%3*.) do if not exist %2\%%a set flag=%%a
rem 下面一行,判断如果不需要更新,直接跳到结束。
if %flag%!==! goto end
rem 下面一行,把标志文件拷贝到客户机目录。
echo y|copy %1\游戏更新\%flag% %2 >nul
rem 下面一行,执行游戏更新包。
if exist %1\游戏更新\%flag%.exe start /w %1\游戏更新\%flag%.exe >nul
:end

结束。
其实关键是winrar的使用。
有问题大家探讨。





文章作者:未知