自动更新打包压缩Json并上传svn的bat脚本

原创 2017年06月26日 21:27:53

一、原由

策划用xlsx导出多个json数据之后,需要打包成一个大的json文件,然后这个客户端程序需要用这个文件。那么问题来了,策划不想要每次都需要手动做操作,希望程序写个脚本,每次只要执行脚本,就可以完成一整套动作,最后上传更新到服务器去。

要求:

  1. 全自动流程
  2. 不需要更改脚本之类的(比如修改配置路径等等)

二、策划数据流程

这里总结一下策划数据到游戏中使用数据的流程。
1. svn更新最新的策划数据文档和输出的json数据
2. 执行json打包应用程序,生成一个综合大的datas.json文件
3. 删除掉原来svn中的datas.zip文件,并且更新
4. 把datas.json用zip程序压缩成datas.zip
5. 把最新的datas.zip提交到svn去
6. 调用内网服务器,把svn上的datas.zip同步到web服务器去

这里解释一下:

提交到svn去,是给程序用的,程序更新下来就是策划最新的策划数据了。

更新到内网服务器去,是内网游戏用的,也就是正在运行测试的游戏服务器

三、策划数据和svn的目录结构

只有清晰地知道整个项目工程的各种目录结构,才能写出对应的脚本。通过目录的主要目的也是想要写一个脚本,但是不需要策划去更改路径,直接更新下脚本就可以了。
总的svn目录结构,包含客户端资源assets,策划数据data,可以查看目录结构,可以更好地理解脚本为什么没要这样写,为什么可以做到不用写配置等等问题。

这里写图片描述
进入策划数据,是这样的数据结构:
这里写图片描述
client是所有的策划表输出的json文件目录
JsonMerge是json打包工具,真正的脚本是写在这里的
这里写图片描述
可以看到这里有一个AopenJsonMerge.bat的文件了,我们这里的主角。同时还有7z这个压缩软件以及svn程序,放在这里主要是方便脚本调用。

四、bat脚本功能讲解

先介绍单个脚本的用途。

更新当前SVN目录:

%~dp0"svn1.8\svn.exe" up

更新指定的svn目录

%~dp0"svn1.8\svn.exe" up %assets_path%

检测json打包工具程序,如果在任务列表中找不到了,则继续后面的脚本

:check
tasklist /NH | find "JsonMerge.exe">nul && (ping -n 1 127.1>nul&goto check)

注意,JsonMerge执行完是会自动关闭。

压缩json指令

%~dp0"7z\7za.exe" a -tzip %jsonFilePath%\assets\config\cfg.cfg %jsonFilePath%\assets\config\cfg.json

提交svn数据

%~dp0"svn1.8\svn.exe" commit %assets_path%\cfg.cfg -m "update cfg.cfg"

最后调用内网服务器的php脚本,这个脚本的工作是更新服务器上的svn资源,并且复制到指定的web目录下

start http://192.168.1.111:8080/update.php?v=default

最后看下JsonMerge的配置文件,采用了相对目录位置,所以不需要额外配置路径

<root isOpposite="true" input="../client" output="../../assets/config/cfg.json"/>

五、完整bat脚本

这个是实际生产环境中修改而来的脚本,虽然简单,但是完成的功能却不少,真是非常方便。实际项目过程中,总会使用到各种自己写的脚本来提交项目的开发效率。

echo Update the planning data
%~dp0"svn1.8\svn.exe" up  ..\data\
%~dp0"svn1.8\svn.exe" up  ..

set assets_path=..\..\assets\config
echo del cfg.json
del %assets_path%\cfg.json
del %assets_path%\cfg.cfg
%~dp0"svn1.8\svn.exe" up %assets_path%
del %assets_path%\cfg.cfg

echo JsonMerge json
start %~dp0"JsonMerge.exe"

:check
tasklist /NH | find "JsonMerge.exe">nul && (ping -n 1 127.1>nul&goto check)
cd ..
cd ..
set jsonFilePath=%cd%
cd data
cd JsonMerge
%~dp0"7z\7za.exe" a -tzip %jsonFilePath%\assets\config\cfg.cfg %jsonFilePath%\assets\config\cfg.json

%~dp0"svn1.8\svn.exe" commit %assets_path%\cfg.json -m "update cfg.json"
%~dp0"svn1.8\svn.exe" commit %assets_path%\cfg.cfg -m "update cfg.cfg"

start http://192.168.1.111:8080/update.php?v=default
版权声明:本文为博主原创文章,转载必须声明出处和作者。地址:http://blog.csdn.net/sujun10 作者:弃天笑

JSON 解析--JObject

JObject
  • v5_BAT
  • v5_BAT
  • 2017年05月02日 16:52
  • 35346

bat文件浅析(四)

If 命令   if 表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:   1)IF      语法: if [not] "参数" == "字符串" 待执行的命令      参数如果...
  • w2865673691
  • w2865673691
  • 2014年02月22日 09:17
  • 1117

简单的打包文件夹bat脚本

近段时间经常要做的一件事情就是要将git上面最新的程序更新到本地后,打包压缩然后上传至服务器,再更新服务器上面的代码,前段时间我在服务器上面写了一个简单的更新shell,感觉效果不错,提高了更新效率,...
  • ljihe
  • ljihe
  • 2017年05月09日 15:22
  • 765

SVN实现自动更新(Windows平台svnserver)

找版本库保存的目录,新建一个post-commit.bat文件 post-commit.bat文件内容为 @echo off"C:\Program Files\VisualSVN ...
  • dihuangtian01
  • dihuangtian01
  • 2017年06月13日 15:56
  • 480

bat脚本自动上传文件到Linux FTP服务器上

环境说明: 在wind7环境下,通过bat脚本将指定的文件上传到远程的Linux FTP服务器上。 上传文件目录:F:\crawlerServer 上传脚本:ftp-put.bat 上...
  • nydia_xiangxiang
  • nydia_xiangxiang
  • 2015年07月13日 17:45
  • 2707

bat脚本:SVN日志分类

在java软件开发中,通常会用svn管理项目代码,等到系统上线的时候,从项目开始到目前为止,需要从三个维度看我们改了哪些代码:   1、都改了哪些代码,我需要一个汇总   2、哪些模块(工程)改了哪些...
  • BABY5845131421
  • BABY5845131421
  • 2017年06月20日 13:52
  • 273

svn脚本的简单使用

# # 张绍裕的脚本(svn脚本) # pwd # 名称配置 checkout_name="checkout" save_path="/Users/zhangshaoyu/Desktop/up...
  • potato512
  • potato512
  • 2016年08月24日 17:34
  • 1073

Windows下批处理方式压缩文件夹为tar.gz的方法

还是同样的项目,在文件夹上使用了tar.gz的方式来压缩,然后再上传,考虑到测试的时候有几百个包,手工一个个压缩实在太慢,工具在选择的时候最初选用的好压,研究后发现好压命令行居然不支持gzip的压缩方...
  • ryu2003
  • ryu2003
  • 2016年02月25日 12:56
  • 2979

使用VisualSVN 钩子脚本,同步到web应用目录

废话不说 配置钩子吧首先在apache的www目录下创建一个文件夹,进行checkout,输入需要用户名和密码,将项目取出到该文件夹中。我的是svn文件夹(必不可少) 右键点击 Repositori...
  • a2227232928
  • a2227232928
  • 2016年07月13日 14:58
  • 321

自动部署SVN 自动打包的shell

自动部署SVN 自动打包的shell
  • sigangjun
  • sigangjun
  • 2014年02月24日 15:49
  • 2000
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动更新打包压缩Json并上传svn的bat脚本
举报原因:
原因补充:

(最多只允许输入30个字)