一个 “记事本” 更新游戏,免安装,纯绿色,全免费,不暂用资源,
大家都希望有个同步软件可以达到
网络目录或者文件的更新来减少自己的工作量
现在网络上也有很多软件可以达到这个目的,象同步专家之类的,
但是这些软件需要安装服务端和客户端,客户端要常驻才能使用,并且占用了一定的资源。
现在,用“记事本” 更新游戏
优点:
第一:免安装 。
第二:不用升级 。
第三:不常驻内存,不暂用资源。
第四:不影响客户机任何东西 。
第五:网管可以操作,简单灵活。
缺点:
写批处理 有点麻烦。
准备工作:
先把有盘游戏全部复制到电影主机一个文件夹里。建共享(只读,共享名要用英文不能有符号)
在客户机先测试能否访问。如我这的路径 : \\FilmServer\GameUpdate
解释:选择电影来做游戏更新服务器原因是。电影是最不怕出问题的主机,
可以在电影上更新游戏。还有好处多多。
客户机的游戏路径 : D:\Games
在电影主机的: “\\FilmServer\GameUpdate ” 下建一个批处理:“GameUpdate.bat ”
内容:
--------------------------------------------------------------------
@echo off
@echo.
@echo 游戏更新中。。。。
@echo.
@echo 有些文件比较大,更新需要一些时间,请稍等。。
@echo.
-------------------------------------------------------------------
粘贴到记事本里。另保存为“GameUpdate.bat”文件。 横线以内的文字吆!
再建一个快捷方式,拖放到 客户机的 启动组里! Ok ~~~~~~~
好,准备工作到此结束。
工作原理:
客户机每次开机时,就会运行这个批处理,
但是,它的内容只是在屏幕上显示几行字,
然后,一闪而过。运行就结束了。
现在,我们就来更新游戏吧!
假设,你更新劲乐团游戏时,
就在服务器的“GameUpdate.bat” 这个批处理文件中的
最后一行 写上:
xcopy /s /e /d /y \\FilmServer\GameUpdate\劲乐团 D:\Games\劲乐团\
就可以从服务器上的“劲乐团”中的文件,和 客户机 的文件 进行比较。有最新的
就复制过来,
如果,你更新两个游戏 “ 传奇” “大话西游”
最后一行 写上:
xcopy /s /e /d /y \\FilmServer\GameUpdate\dhxy D:\Games\dhxy
xcopy /s /e /d /y \\FilmServer\GameUpdate\"Legend of Mir" D:\Games\"Legend of Mir"
注意: 如果文件夹名字中间有空格 就 用双引号( " " )括起来,是英文半角的双引号
是不是 很爽啊 ( @^_^@)
只要把游戏文件夹的名字添上就可以了。
一行,就是更新一个游戏。
游戏文件夹的名字带有空格的 就用双引号( " " )括起来!
可是,问题又来了!
每台客户机都有这个文件,而我们只是更新其中的几台。
这样,在其他的机器重起时,也要运行游戏更新,岂不麻烦。
解决方案:
在批处理文件的旁边在建一个 “config.ini ” 文件。
内容:
-----------------------------------------------------------------
[ComputerName]
NH005
NH006
NH007
NH008
NH009
------------------------------------------------------------------
粘贴到“记事本” 里, 另保存为 “config.ini ” 文件.
注意:字母一定要和客户机相同!
在批处理文件“GameUpdate.bat” 最后一行
写上:
----------------------------------------------------------------------------------------------------------
--
for /f "skip=1 tokens=1" %%N IN (\\FilmServer\GameUpdate\Config.ini) Do if %ComputerName%==%%N
(
xcopy /s /e /d /y \\FilmServer\GameUpdate\劲乐团 D:\Games\劲乐团\
xcopy /s /e /d /y \\FilmServer\GameUpdate\dhxy D:\Games\dhxy
xcopy /s /e /d /y \\FilmServer\GameUpdate\"Legend of Mir" D:\Games\"Legend of Mir"
) Else (
@echo 本台机器今天不更新!
)
Exit
----------------------------------------------------------------------------------------------------------
--------
注释:
for /f "skip=1 tokens=1" %%N IN (\\FilmServer\GameUpdate\Config.ini) Do if %ComputerName%==%%N (
::: for 批处理的循环指令
/f 循环是在一个文件中的开关命令
skip=1 忽略第一行
tokens=1 从第一列开始
%%N 读取的内容存入变量(N)中
IN 批处理的循环指令
Do 批处理的循环指令
(\\FilmServer\GameUpdate\Config.ini) 指定要循环的文件
if 判断语句指令
%ComputerName%
系统定义的环境变量。
xcopy /s /e /d /y 复制命令
/s 复制目录和子目录,除了空的
/e 复制目录和子目录,包括空的
/d 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
/y 禁止提示以确认改写一个现存目标文件。
) Else ( 如果没有的意思。
注意:那个 第一个“ ( ) ” 一定要写在 “for 语句”的后面“ (”
才可以按回车。“ if 语句”的语法格式,大家可以在“dos 窗口”
“ c:> if /? ” 查看。
Exit 退出
::::: 整句意思: 循环读取 服务器上的“config.ini ”文件中的机器名。
和本地机器名比较,如果相同,就更新。 否则 ,退出
这样,平时不更新时,让“config.ini” 文件为空, 更新时写上机器名!