王梦瑶 发表于 2009-9-5 08:53:09

一个记事本更新游戏

一个 “记事本” 更新游戏,免安装,纯绿色,全免费,不暂用资源,
   
          大家都希望有个同步软件可以达到网络目录或者文件的更新来减少自己的工作量
            现在网络上也有很多软件可以达到这个目的,象同步专家之类的,
            但是这些软件需要安装服务端和客户端,客户端要常驻才能使用,并且占用了一定的资源。
            
         现在,用“记事本” 更新游戏
   
            优点:
                     第一:免安装 。
                     
                     第二:不用升级 。
                  
                     第三:不常驻内存,不暂用资源。
                     
                     第四:不影响客户机任何东西 。
                     
                     第五:网管可以操作,简单灵活。
            
            缺点:
                  写批处理 有点麻烦。
      
    准备工作:
         先把有盘游戏全部复制到电影主机一个文件夹里。建共享(只读,共享名要用英文不能有符号)
       在客户机先测试能否访问。如我这的路径 :   \\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 ” 文件。
         内容:
    -----------------------------------------------------------------
               
          NH005                  
          NH006                  
          NH007
          NH008                  
          NH009
------------------------------------------------------------------
         粘贴到“记事本” 里, 另保存为 “config.ini ” 文件.
            注意:字母一定要和客户机相同!
      
在批处理文件“GameUpdate.bat”最后一行
   
         写上:

----------------------------------------------------------------------------------------------------------
--
      for /f "skip=1 tokens=1"%%NIN (\\FilmServer\GameUpdate\Config.ini) Doif %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"%%NIN(\\FilmServer\GameUpdate\Config.ini) Doif %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” 文件为空, 更新时写上机器名!

zengjx168 发表于 2009-9-5 13:11:10

经典。收了。。

阿修无敌 发表于 2011-2-15 21:40:12

不是很懂,但感觉很厉害

wang616667172 发表于 2011-3-5 23:39:49

不是很懂啊···有点难···
页: [1]
查看完整版本: 一个记事本更新游戏