win shell和macos shell脚本实例
2017-06-13 10:21
253 查看
本实例的功能是命令行输入的Excels文件名和sheet名,输出符合protobuf格式的data数据文件和.cs存取类,分别提供了win和mac版本的脚本代码。
第一步,将xls经过python的xls_deploy_tool.py转成data和proto
第二步:用proto.protobin把proto翻译成cs
第三步:将data和cs拷到Assets里
win shell脚本:
macos shell:
在unity3d游戏开发中,将策划Excels表转换为.data和.cs的详细实现过程为:
一、windows下构建Excel表:
1、安装环境:
1).先按照python2.7.7,cmd下执行python成功即可。
2).安装第三方插件protobuf-2.5.0和xlrd-1.0.0.tar,安装方法是解压文件,均到解压文件的setup.py下(protobuf-2.5.0在python子目录下)执行:
python setup.py install
2、执行转表:
1)建表
在项目的c1\Excels建表,建立表的格式参考:goods_info_template.xls,详细格式见Excels下的:xls_deploy_tool.py内的注释。
Sheet名要求大写,名字最好和表名一样,或者以表名为前缀。
保存为.xls格式(97-2004版本)。
2)转表
cmd 到c1\tools\ExcelToProto目录下,执行命令:
build Scenes SCENE_INFO
PS:参数Scenes是表明,参数SCENE_INFO是Sheet名字(大写)。
二、MacOS下构建Excel表:
1、安装环境
1)安装Excels
http://bbs.feng.com/read-htm-tid-9704285.html
2).安装protobuffer
http://www.cnblogs.com/yanghuahui/p/4448728.html
3).安装mono
参考:http://blog.csdn.net/zhuangyou123/article/details/51482029
mono地址:http://www.mono-project.com/download/
2、执行转表
1)建表
和windows下一样。
2)转表
cd到c1/tools/ExcelToProto/mactool目录下,执行命令:
若第一次执行,获取执行权限:chmod x+u build.sh
转表:
./build Scenes SCENE_INFO
PS:参数Scenes是表明,参数SCENE_INFO是Sheet名字(大写)。
第一步,将xls经过python的xls_deploy_tool.py转成data和proto
第二步:用proto.protobin把proto翻译成cs
第三步:将data和cs拷到Assets里
win shell脚本:
@echo off set XLS_NAME=%1 set SHEET_NAME=%2 echo. echo =========Compilation of %XLS_NAME%.xls========= ::--------------------------------------------------- ::第一步,将xls经过xls_deploy_tool转成data和proto ::--------------------------------------------------- set STEP1_XLS2PROTO_PATH=.\step1_xls2proto @echo on cd tool\%STEP1_XLS2PROTO_PATH% @echo off echo TRY TO DELETE TEMP FILES: del *_pb2.py del *_pb2.pyc del *.proto del *.data del *.log del *.txt @echo on python xls_deploy_tool.py %SHEET_NAME% ..\..\..\..\Excels\%XLS_NAME%.xls ::--------------------------------------------------- ::第二步:把proto翻译成cs ::--------------------------------------------------- cd .. set STEP2_PROTO2CS_PATH=.\step2_proto2cs set PROTO_DESC=proto.protobin cd %STEP2_PROTO2CS_PATH% @echo off echo TRY TO DELETE TEMP FILES: del *.cs del *.protobin del *.txt @echo on dir ..\%STEP1_XLS2PROTO_PATH%\*.proto /b > protolist.txt @echo on for /f "delims=." %%i in (protolist.txt) do protoc ..\%STEP1_XLS2PROTO_PATH%\*.proto --descriptor_set_out=%PROTO_DESC% --proto_path=..\%STEP1_XLS2PROTO_PATH% for /f "delims=." %%i in (protolist.txt) do ProtoGen\protogen -i:%PROTO_DESC% -o:%%i.cs cd .. ::--------------------------------------------------- ::第三步:将data和cs拷到Assets里 ::--------------------------------------------------- @echo off set OUT_PATH=..\..\..\client\Assets\StreamingAssets set DATA_DEST=DataConfig set CS_DEST=Scripts\Server\DataConfig\ProtoGen @echo on copy %STEP1_XLS2PROTO_PATH%\*.data %OUT_PATH%\%DATA_DEST% copy %STEP2_PROTO2CS_PATH%\*.cs %OUT_PATH%\%CS_DEST% ::--------------------------------------------------- ::第四步:清除中间文件 ::--------------------------------------------------- @echo off echo TRY TO DELETE TEMP FILES: cd %STEP1_XLS2PROTO_PATH% del *_pb2.py del *_pb2.pyc del *.proto del *.data del *.log del *.txt cd .. cd %STEP2_PROTO2CS_PATH% del *.cs del *.protobin del *.txt cd .. ::--------------------------------------------------- ::第五步:结束 ::--------------------------------------------------- cd .. pause @echo on
macos shell:
#!/bin/sh #.xls to .data and .proto XLS_NAME=$1 SHEET_NAME=$2 XLS_SOURCE_PATH=../../../../../Excels/${XLS_NAME}.xls #.proto to cs cd ./protogen-master STEP1_XLS2PROTO_PATH=step1_xls2proto STEP2_PROTO2CS_PATH=step2_proto2cs #1 .excel to .data and .proto # delete cur file and copy to dir cd ${STEP1_XLS2PROTO_PATH} rm *.txt rm *.proto rm *.data rm *.log rm *_pb2.py rm *_pb2.pyc echo ${SHEET_NAME} echo ${XLS_SOURCE_PATH} python xls_deploy_tool.py ${SHEET_NAME} ${XLS_SOURCE_PATH} #2 .proto to .protobin and .protobin to .cs cd ../${STEP2_PROTO2CS_PATH} rm *.protobin rm *.proto rm *.txt rm *.cs PRODESC=proto.protobin ls ../${STEP1_XLS2PROTO_PATH}/*.proto > protolist.txt for filePath in $(cat protolist.txt) do fileName=$(basename $filePath .proto) protoc ../${STEP1_XLS2PROTO_PATH}/*.proto --descriptor_set_out=${fileName}.protobin --proto_path=../${STEP1_XLS2PROTO_PATH} mono protogen.exe -i:${fileName}.protobin -o:${fileName}.cs echo ${fileName} done # echo ../${STEP1_XLS2PROTO_PATH}/*.proto echo $(basename $filePath .protobin) #protoc ../${STEP1_XLS2PROTO_PATH}/*.proto --descriptor_set_out=${PRODESC} #for filePath in 'cat $protolist.txt' do mono protogen.exe -i:${PRODESC} -o:$(basename $filePath .protobin).cs #3. copy to work space OUT_PATH=../../../../client/Assets/StreamingAssets DATA_DEST=${OUT_PATH}/DataConfig CS_DEST=${OUT_PATH}/Scripts/Server/DataConfig/ProtoGen cd ../ cp ${STEP1_XLS2PROTO_PATH}/*.data ${DATA_DEST} cp ${STEP2_PROTO2CS_PATH}/*.cs ${CS_DEST} echo 'successful!'
在unity3d游戏开发中,将策划Excels表转换为.data和.cs的详细实现过程为:
一、windows下构建Excel表:
1、安装环境:
1).先按照python2.7.7,cmd下执行python成功即可。
2).安装第三方插件protobuf-2.5.0和xlrd-1.0.0.tar,安装方法是解压文件,均到解压文件的setup.py下(protobuf-2.5.0在python子目录下)执行:
python setup.py install
2、执行转表:
1)建表
在项目的c1\Excels建表,建立表的格式参考:goods_info_template.xls,详细格式见Excels下的:xls_deploy_tool.py内的注释。
Sheet名要求大写,名字最好和表名一样,或者以表名为前缀。
保存为.xls格式(97-2004版本)。
2)转表
cmd 到c1\tools\ExcelToProto目录下,执行命令:
build Scenes SCENE_INFO
PS:参数Scenes是表明,参数SCENE_INFO是Sheet名字(大写)。
二、MacOS下构建Excel表:
1、安装环境
1)安装Excels
http://bbs.feng.com/read-htm-tid-9704285.html
2).安装protobuffer
http://www.cnblogs.com/yanghuahui/p/4448728.html
3).安装mono
参考:http://blog.csdn.net/zhuangyou123/article/details/51482029
mono地址:http://www.mono-project.com/download/
2、执行转表
1)建表
和windows下一样。
2)转表
cd到c1/tools/ExcelToProto/mactool目录下,执行命令:
若第一次执行,获取执行权限:chmod x+u build.sh
转表:
./build Scenes SCENE_INFO
PS:参数Scenes是表明,参数SCENE_INFO是Sheet名字(大写)。
相关文章推荐
- if嵌套语句 shell脚本实例 测试是否闰年
- 以TXT为载体的数据交换利用SHELL生成导数脚本实例
- shell脚本实例
- Shell脚本防攻击的方法与实例
- 用shell脚本实现杨辉三角的4个实例!
- Unix/Linux Shell脚本入门实例[00原创]
- shell脚本实例备忘
- Shell 编程--本文结合大量实例阐述如何编写一个shell脚本
- linux 5.4 shell脚本实例
- openstack shell脚本 利用curl 删除实例 API
- 方老师shell脚本实例系列讲座下载地址
- Shell操作数据库流控脚本实例
- 脚本shell中的tr 命令使用与实例
- Shell 编程--本文结合大量实例阐述如何编写一个shell脚本
- shell脚本实例解析
- shell脚本实例 使用exit语句和if
- 本文结合大量实例阐述如何编写一个shell脚本
- shell 脚本判断文件类型实例
- LinuxC/C++编程基础(13) shell脚本简单实例
- shell脚本实例分析1