中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手请我给个思路 我想写个自动更新游戏的批处理
作者:
标题: 高手请我给个思路 我想写个自动更新游戏的批处理 上一主题 | 下一主题
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『楼 主』:  高手请我给个思路 我想写个自动更新游戏的批处理

我想写一个自动更新游戏的P`
我们网吧有机器配置不一样 有部分是160G硬盘的 有部分是80G硬盘的 80G硬盘的只装了部分游戏`
我想找几台160G硬盘的电脑做更新服务器`
比如说更新服务器的IP为192。168。0。2
怎么样判断80G硬盘里的所有游戏目录(两种都是在d:\netgame下的)然后只判断存在的目录有哪些要更新`
怎么样对比游戏目录里文件的时间 大小 版本 发现有不同的就替换`而不用整个
文件全部替换 。

我确实太菜 才接触批处理`所以想请各位高手帮我想想办法``
在线等答复``谢谢了 `

[ Last edited by fengzi on 2007-1-25 at 11:53 AM ]

2007-1-26 00:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 2 楼』:  

我把80G硬盘的游戏目录用dir d:\netgame >1.txt 列了出来
该用怎么样的命令把1.txt里面列出来的游戏从服务器上面比较并且更新呢`?

[ Last edited by fengzi on 2007-1-25 at 11:57 AM ]

2007-1-26 00:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 3 楼』:  

呵呵,在以前没游戏更新软件的时候,我就用批处理来更新游戏,但现在游戏更新软件这么多了,还用批处理就显得不够好用了,速度比软件更新要慢,管理也不方便。为什么还要走老路?



κχυμγνξοθπρωψιαδλεηφβτζσ┬╀┾┳┞┯┰┱┣┲┳╂╁│├┟┭┠这是什么??这就是我的人生
2007-1-26 00:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 4 楼』:  

因为爱上了批处理`
本来我们游戏是用讯闪更新的``因为时间一久`同时拿几台电脑更新游戏``讯闪服务器就吃不消了`
网上到是有很多的更新软件``但其实说到底也都是靠DOS的xcopy来更新游戏`如果我一味的靠那些软件来更新游戏`那我能从中学到些什么`?
而且写个批处理不用安装`直接运行就可以了``软件还要现装``还要设置``想起来`还是批处理简单实在些`

2007-1-26 01:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





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

p不是万能的,我的想法是p更新游戏还有很多不足的

以前写的个:http://blog.yx127.com/?action=show&id=179

2007-1-26 01:56
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by vkill at 2007-1-25 12:56 PM:
p不是万能的,我的想法是p更新游戏还有很多不足的

以前写的个:http://blog.yx127.com/?action=show&id=179

能不能不用第3方软件呢`?
其实我最主要的是想知道如何选择性的更新游戏`因为80G硬盘和160G硬盘的游戏大不一样``我只想先把80G硬盘里的游戏目录先找出来再在游戏服务器里进行更新``

2007-1-26 02:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



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

@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-1-26 17:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
469454577
新手上路





积分 2
发帖 1
注册 2007-1-8
状态 离线
『第 8 楼』:  

?

2007-2-2 09:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: