中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 网吧 批处理网络游戏更新程序 待高手完善
作者:
标题: 网吧 批处理网络游戏更新程序 待高手完善 上一主题 | 下一主题
maobin
初级用户





积分 65
发帖 18
注册 2006-10-1
状态 离线
『楼 主』:  网吧 批处理网络游戏更新程序 待高手完善

我们这假设的\\192.168.0.1\e$\netgame\ 为游戏服务器目录
e:\netgame\ 为本地网络游戏安装目录
本程序已经通过测试
大家在测试的时候只需要修改一下游戏服务器的目录和本地网络游戏安装文件的目录就好了
欢迎大家参与讨论和测试 更期待高手给予修改和指点

  Quote:
@echo off
title 批处理游戏更新程序
color 1c
echo.
echo.
echo                         ******************************
echo                             欢迎使用批处理更新程序
echo                         ******************************
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                          开始更新(Y)  直接退出(N)
echo.
echo.
set /p ok=请选择:
if %ok%==y goto kaishi
if %ok%==n goto end
:kaishi
dir /b e:\netgame\>d:\1.txt
for /f "tokens=*" %%i in (d:\1.txt) do xcopy /s /e /d /y \\192.168.0.1\e$\netgame\"%%i" e:\netgame\"%%i"
del /q/s d:\1.txt>nul
echo.
echo 您给的任务我们已经完成......
echo.
echo 任意键退出
echo 谢谢使用批处理游戏更新程序,下次更新见...
pause>nul
exit

:end
echo.
echo.
echo 谢谢使用批处理游戏更新程序,下次更新见...
ping -n 5 127.1>nul
exit

[ Last edited by maobin on 2006-12-8 at 07:01 PM ]

附件 1: 批处理游戏更新程序.rar (2006-12-8 18:59, 525 bytes, 下载附件所需积分 1 点 ,下载次数: 48)
2006-12-8 18:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  



  这么长的批处理,精华就是xcopy这一句。

  不用将文件列表导入文件,再用for来分析文件,可以直接在for命令的in后面的括号里面打上命令,比如:for "delims=" %%i in ('dir /b e:\netgame\') do command……,或者用for的/r参数遍历目录。

  后面的结果输出可以共用一个提示。


2006-12-8 23:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zjindong
初级用户





积分 64
发帖 26
注册 2006-1-10
状态 离线
『第 3 楼』:  

高啊 ..

2006-12-9 06:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 4 楼』:  

我在想为什么连  net use 都没有?

我以前写的
http://bbs.wglm.net/read.php?tid=38582&keyword=
还有wglm论坛一总斑竹写的
http://bbs.wglm.net/read.php?tid=38149&keyword=

2006-12-9 06:42
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
falwpeihc
新手上路





积分 8
发帖 4
注册 2006-12-7
状态 离线
『第 5 楼』:  

二搂的看来是高手啊,什么时候帮我写一个的啊,,QQ  625825185

2006-12-9 11:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maya0su
中级用户




积分 241
发帖 131
注册 2005-9-28
状态 离线
『第 6 楼』:  

其实不用那么复杂的
我做网吧的时候也用批处理更新游戏
不过我认为加上net use 会更好,这个是第一步
第二步可以把网吧的名字在echo上显示出来
然后用xcopy /d/e/h/k/y
这个可以自动跟服务器上的文件比较,假如有更新,会自动开始更新
假如服务器没有补丁更新,那么此批处理自动退出
避免了像迅闪之类的程序,重复更新的问题
而且速度也很棒,可以打到四-五的M的速度
在批处理再加上start 游戏名称,可以在更新完成后自动开始游戏
如果楼主有需要,跟我联系,我可以帮你做好发给你!



房东说:这娃是个好孩子!
2006-12-13 08:19
查看资料  发送邮件  发短消息 网志  OICQ (55115315)  编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 7 楼』:  

参考这个http://www.cn-dos.net/forum/viewthread.php?tid=25505&fpage=1



bat c c++
2006-12-13 08:21
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
wanggangzah
新手上路





积分 2
发帖 1
注册 2006-1-18
来自 安徽合肥
状态 离线
『第 8 楼』:  怎么不可以下载

我不能下载哦

2007-3-5 11:48
查看资料  发送邮件  发短消息 网志  OICQ (303851212)  编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 9 楼』:  

我也写过一个,但没有应用环境,所以没真正测试过,但我发现COPY文件过大文件还是会出,修改时间与大小不变,但二进制对比就会发现有变化
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

::SET SP=\\Server\UPDATE$\
SET SP=F:\UPDATE\
SET SPC=%SP%CACHE\
SET CP=%ProgramFiles%\UPDATE\
SET CPC=%CP%CACHE\
SET SGP=F:\1\
::SET SGP=\\Server\NetGame$\
SET CGP=F:\2\
::SET CGP=D:\NetGame\
SET SCAN=%CGP%
SET UPH=%SCAN%%~1\%~1.ini

IF [%~1] == [-s] (
SET GO=CALL :SC
IF NOT [%~2] == [] (
SET TO=AN %~2
SET SCAN=%SGP%
SET UPH=F:\UPDATE\CACHE\%~2.ini
) ELSE SET GO=
)
%GO%%TO%
IF [%1] == [] (
GOTO :EOF) ELSE (
IF [%2] == [] (
GOTO :EOF) ELSE (
IF [%3] == [] (
GOTO :EOF)
)
)
IF NOT EXIST "%CGP%%~1\" MD "%CGP%%~1\"
IF NOT EXIST "%SP%" GOTO :START
IF NOT EXIST "%CGP%%~1\%~1.ini" CALL :SCAN %1
XCOPY /H /R /K /X /Y /Q /C /G "%SPC%*" "%CPC%">nul
IF EXIST "%CPC%%~nx0" CALL :NEW %0 %1 %2 %3
FOR /F "tokens=*" %%a IN ("%CPC%%~1.ini") DO (
FOR /F "tokens=*" %%b IN ("%CGP%%~1\%~1.ini") DO (
IF NOT "%%~tza" == "%%~tzb" (
GOTO NEXT1) ELSE (
GOTO START)
)
)

:NEXT1
ECHO.>"%CP%update.dat"
FOR /F "tokens=1,2,3,*" %%i IN ('type "%CPC%%~1.ini"') DO (
FINDSTR /B /E /I /C:"%%i %%j %%k %%l" "%CGP%%~1\%~1.ini">nul||ECHO %%l>>"%CP%update.dat"
)

PUSHD %CGP%%~1
XCOPY /T /E /Y "%SGP%%~1"
FOR /F "tokens=*" %%i IN ('type "%CP%update.dat"') DO (
XCOPY /H /R /K /X /Y /Q /C /G /D "%SGP%%~1\%%i" "%%~dpi">nul
)
CALL :SCAN %1
IF /I NOT "%~2" == "DEL" GOTO :START

:NEXT2
FOR /F "tokens=1,2,3,*" %%i IN (%CGP%%~1\%~1.ini) DO (
FINDSTR /B /E /I /C:"%%i %%j %%k %%l" "%CPC%%~1.ini">nul||del /f /q %%~dpnxl
)
pause
GOTO :START

:SCAN
ECHO.>"%UPH%"
FOR /F "tokens=*" %%i IN ('DIR /B /S /A:-D "%SCAN%%~1"') DO (
SET FP=%%~ftzi
SET FP=!FP:%SCAN%%~1\=!
ECHO !FP!>>"%UPH%")
GOTO :EOF

:NEW
FC /L "%CPC%%~nx0" %1|find "*"||GOTO :EOF
ECHO @ECHO OFF>"%CP%temp.cmd"
ECHO COPY "%CPC%%~nx0" "%CP%" /Y>>"%CP%temp.cmd"
ECHO START /I "UPDATE" %~nx1 "%~2" "%~3" "%~4">>"%CP%temp.cmd"
ECHO DEL /F /Q "%CPC%%~nx0">>"%CP%temp.cmd"
ECHO DEL /F /Q "%CP%temp.cmd"^&EXIT>>"%CP%temp.cmd"
START /I /MIN "NEW" "%CP%temp.cmd"
EXIT

:START
START "UPDATE DONE.." "%CGP%%~1\%~3"
EXIT


2007-3-5 19:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wang8499
新手上路





积分 5
发帖 3
注册 2007-3-5
状态 离线
『第 10 楼』:  

不错,支持一下。

2007-3-5 23:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 11 楼』:  

dir /b e:\netgame\
for /f "tokens=*" %%i in ('dir /b e:\netgame\') do xcopy /s /e /d /y \\192.168.0.1\e$\netgame\"%%i" e:\netgame\"%%i"


直接这样就好了,不需要导入 1.txt 再删除.

2007-3-6 01:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wgzahhs
新手上路





积分 2
发帖 1
注册 2007-3-12
来自 安徽含山
状态 离线
『第 12 楼』:  老大不能下载

不能下载

2007-3-24 14:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: