Chinaunix首页 | 论坛 | 博客
  • 博客访问: 559005
  • 博文数量: 747
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4995
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-10 10:19
文章分类

全部博文(747)

文章存档

2011年(1)

2008年(746)

我的朋友
最近访客

分类:

2008-09-10 10:19:21

一个 “” ,免安装,纯绿色,全免费,不暂用资源,


大家都希望有个软件可以达到网络目录或者文件的更新来减少自己的工作量

现在网络上也有很多软件可以达到这个目的,象同步专家之类的,

但是这些软件需要安装服务端和客户端,客户端要常驻才能使用,并且占用了一定的资源。


现在,用“记事本” 更新游戏

优点:
第一:免安装 。

第二:不用升级 。

第三:不常驻内存,不暂用资源。

第四:不影响客户机任何东西 。

第五:网管可以操作,简单灵活。

缺点:
写 有点麻烦。

准备工作:

先把有盘游戏全部复制到主机一个文件夹里。建(只读,共享名要用英文不能有符号)

在客户机先测试能否访问。如我这的路径 : \\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” 文件为空, 更新时写上机器名!


打字真累啊,就先写到这里, 小弟 抛砖引玉,欢迎各位大侠指点!~~~~~~~



--------------------next---------------------

阅读(220) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~