Board logo

标题: 网吧 批处理网络游戏更新程序 待高手完善 [打印本页]

作者: maobin     时间: 2006-12-8 18:29    标题: 网吧 批处理网络游戏更新程序 待高手完善

我们这假设的\\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)

作者: lxmxn     时间: 2006-12-8 23:20


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

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

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

作者: zjindong     时间: 2006-12-9 06:20
高啊 ..
作者: vkill     时间: 2006-12-9 06:42
我在想为什么连  net use 都没有?

我以前写的
http://bbs.wglm.net/read.php?tid=38582&keyword=
还有wglm论坛一总斑竹写的
http://bbs.wglm.net/read.php?tid=38149&keyword=
作者: falwpeihc     时间: 2006-12-9 11:12
二搂的看来是高手啊,什么时候帮我写一个的啊,,QQ  625825185
作者: maya0su     时间: 2006-12-13 08:19
其实不用那么复杂的
我做网吧的时候也用批处理更新游戏
不过我认为加上net use 会更好,这个是第一步
第二步可以把网吧的名字在echo上显示出来
然后用xcopy /d/e/h/k/y
这个可以自动跟服务器上的文件比较,假如有更新,会自动开始更新
假如服务器没有补丁更新,那么此批处理自动退出
避免了像迅闪之类的程序,重复更新的问题
而且速度也很棒,可以打到四-五的M的速度
在批处理再加上start 游戏名称,可以在更新完成后自动开始游戏
如果楼主有需要,跟我联系,我可以帮你做好发给你!
作者: a9319751     时间: 2006-12-13 08:21
参考这个http://www.cn-dos.net/forum/viewthread.php?tid=25505&fpage=1
作者: wanggangzah     时间: 2007-3-5 11:48    标题: 怎么不可以下载

我不能下载哦
作者: everest79     时间: 2007-3-5 19:52
我也写过一个,但没有应用环境,所以没真正测试过,但我发现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

作者: wang8499     时间: 2007-3-5 23:13
不错,支持一下。
作者: zhoushijay     时间: 2007-3-6 01:47
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 再删除.
作者: wgzahhs     时间: 2007-3-24 14:39    标题: 老大不能下载

不能下载