![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 08:34 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 高手请我给个思路 我想写个自动更新游戏的批处理 |
| 可打印版本 1,049 / 7 |
| 第1楼 fengzi | 发表于 2007-01-26 00:28 |
| 中级用户 发帖 152 积分 315 | |
|
高手请我给个思路 我想写个自动更新游戏的批处理 我想写一个自动更新游戏的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 ] |
|
| 第2楼 fengzi | 发表于 2007-01-26 00:54 |
| 中级用户 发帖 152 积分 315 | |
|
我把80G硬盘的游戏目录用dir d:\netgame >1.txt 列了出来
该用怎么样的命令把1.txt里面列出来的游戏从服务器上面比较并且更新呢`? [ Last edited by fengzi on 2007-1-25 at 11:57 AM ] |
|
| 第3楼 qasa | 发表于 2007-01-26 00:58 |
| 高级用户 发帖 311 积分 959 来自 广东-LianJiang | |
|
呵呵,在以前没游戏更新软件的时候,我就用批处理来更新游戏,但现在游戏更新软件这么多了,还用批处理就显得不够好用了,速度比软件更新要慢,管理也不方便。为什么还要走老路?
|
|
| 第4楼 fengzi | 发表于 2007-01-26 01:13 |
| 中级用户 发帖 152 积分 315 | |
|
因为爱上了批处理`
本来我们游戏是用讯闪更新的``因为时间一久`同时拿几台电脑更新游戏``讯闪服务器就吃不消了` 网上到是有很多的更新软件``但其实说到底也都是靠DOS的xcopy来更新游戏`如果我一味的靠那些软件来更新游戏`那我能从中学到些什么`? 而且写个批处理不用安装`直接运行就可以了``软件还要现装``还要设置``想起来`还是批处理简单实在些` |
|
| 第5楼 vkill | 发表于 2007-01-26 01:56 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
| 第6楼 fengzi | 发表于 2007-01-26 02:43 |
| 中级用户 发帖 152 积分 315 | |
Originally posted by vkill at 2007-1-25 12:56 PM: 能不能不用第3方软件呢`? 其实我最主要的是想知道如何选择性的更新游戏`因为80G硬盘和160G硬盘的游戏大不一样``我只想先把80G硬盘里的游戏目录先找出来再在游戏服务器里进行更新`` |
|
| 第7楼 everest79 | 发表于 2007-01-26 17:07 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
@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 |
|
| 第8楼 469454577 | 发表于 2007-02-02 09:10 |
| 新手上路 发帖 1 积分 2 | |
|
?
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |