计算机技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

  • 欢迎访问 计算机技术论坛-电脑迷与初学者的家园!由于论坛管理严格,新注册会员可能遇到各种问题,无法解决的请发邮件 admin@jsjbbs.cn
查看: 3318|回复: 3

一个记事本更新游戏

[复制链接]
发表于 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 ” 文件。
           内容:
    -----------------------------------------------------------------
        [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” 文件为空, 更新时写上机器名!
zengjx168 该用户已被删除
发表于 2009-9-5 13:11:10 | 显示全部楼层
经典。收了。。
发表于 2011-2-15 21:40:12 | 显示全部楼层
不是很懂,但感觉很厉害
发表于 2011-3-5 23:39:49 | 显示全部楼层
不是很懂啊···有点难···
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

无图版|手机版|计算机技术论坛 JSJBBS.CN @ 2008-2024 ( 鲁ICP备17021708号 )

技术支持 : 北京康盛新创科技有限责任公司

快速回复 返回顶部 返回列表