中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 19:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 网吧 批处理网络游戏更新程序 待高手完善 查看 1,431 回复 11
楼 主 网吧 批处理网络游戏更新程序 待高手完善 发表于 2006-12-08 18:29 ·  中国 上海 奉贤区 电信
初级用户
积分 65
发帖 18
注册 2006-10-01 13:03
19年会员
UID 64244
状态 离线
我们这假设的\\192.168.0.1\e$\netgame\ 为游戏服务器目录
e:\netgame\ 为本地网络游戏安装目录
本程序已经通过测试
大家在测试的时候只需要修改一下游戏服务器的目录和本地网络游戏安装文件的目录就好了
欢迎大家参与讨论和测试 更期待高手给予修改和指点

@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 ]
附件
批处理游戏更新程序.rar (525 bytes, 下载附件所需积分 1 点, 下载次数: 48)
2 发表于 2006-12-08 23:20 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线


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

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

  后面的结果输出可以共用一个提示。
3 发表于 2006-12-09 06:20 ·  中国 福建 泉州 电信
初级用户
积分 64
发帖 26
注册 2006-01-10 16:34
20年会员
UID 48756
状态 离线
高啊 ..
4 发表于 2006-12-09 06:42 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
我在想为什么连 net use 都没有?

我以前写的
http://bbs.wglm.net/read.php?tid=38582&keyword=
还有wglm论坛一总斑竹写的
http://bbs.wglm.net/read.php?tid=38149&keyword=
5 发表于 2006-12-09 11:12 ·  中国 江苏 常州 溧阳市 电信
新手上路
积分 8
发帖 4
注册 2006-12-07 10:27
19年会员
UID 72823
性别 男
状态 离线
二搂的看来是高手啊,什么时候帮我写一个的啊,,QQ 625825185
6 发表于 2006-12-13 08:19 ·  中国 山西 运城 电信
中级用户
★★
积分 241
发帖 131
注册 2005-09-28 19:01
20年会员
UID 42920
性别 男
状态 离线
其实不用那么复杂的
我做网吧的时候也用批处理更新游戏
不过我认为加上net use 会更好,这个是第一步
第二步可以把网吧的名字在echo上显示出来
然后用xcopy /d/e/h/k/y
这个可以自动跟服务器上的文件比较,假如有更新,会自动开始更新
假如服务器没有补丁更新,那么此批处理自动退出
避免了像迅闪之类的程序,重复更新的问题
而且速度也很棒,可以打到四-五的M的速度
在批处理再加上start 游戏名称,可以在更新完成后自动开始游戏
如果楼主有需要,跟我联系,我可以帮你做好发给你!
房东说:这娃是个好孩子!
7 发表于 2006-12-13 08:21 ·  中国 河南 郑州 联通
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
8 怎么不可以下载 发表于 2007-03-05 11:48 ·  中国 安徽 合肥 电信
新手上路
积分 2
发帖 1
注册 2006-01-18 23:59
20年会员
UID 49193
性别 男
来自 安徽合肥
状态 离线
我不能下载哦
9 发表于 2007-03-05 19:52 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
我也写过一个,但没有应用环境,所以没真正测试过,但我发现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 == (
SET GO=CALL :SC
IF NOT == (
SET TO=AN %~2
SET SCAN=%SGP%
SET UPH=F:\UPDATE\CACHE\%~2.ini
) ELSE SET GO=
)
%GO%%TO%
IF == (
GOTO :EOF) ELSE (
IF == (
GOTO :EOF) ELSE (
IF == (
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
10 发表于 2007-03-05 23:13 ·  英国 斯特灵大学
新手上路
积分 5
发帖 3
注册 2007-03-05 22:45
19年会员
UID 80850
性别 男
状态 离线
不错,支持一下。
11 发表于 2007-03-06 01:47 ·  中国 浙江 绍兴 诸暨市 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
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 再删除.
12 老大不能下载 发表于 2007-03-24 14:39 ·  中国 安徽 合肥 电信
新手上路
积分 2
发帖 1
注册 2007-03-12 10:16
19年会员
UID 81495
性别 男
来自 安徽含山
状态 离线
不能下载
论坛跳转: