|
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 来自 甘肃.临泽
状态 离线
|
|
2007-1-26 01:56 |
|
|
fengzi
中级用户
金牌会员
积分 315
发帖 152
注册 2007-1-25
状态 离线
|
『第
6 楼』:
能不能不用第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
状态 离线
|
|
2007-2-2 09:10 |
|