特别说明 此管理脚本不包含图片资源加密,热更新资源文件列表是md5 和 文件路径构成的txt,如下

脚本文件是放在和res src 同级的文件夹里面

脚本内容如下

clear
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
$StartTime = Get-Date
$CurrentPath = (Get-Location).Path + "\d"
$CurrentPath
Write-Host "start please wait !"
### step 1 删除目标资源生成目录
if (Test-Path -Path ./d/src )
{
Remove-Item -Path ./d/src -Recurse
} ### step2 加密lua文件并放到目标目录
cocos luacompile -s ..\src -d .\d\src -e -k GD432LXCVLXXXXXX -b mahjongxxxxxxxxx --disable-compile
#3打印完成提示
Write-Host "compile and move src finish" ### step 3 移动资源文件
if (Test-Path -Path ./d/res )
{
Remove-Item -Path ./d/res -Recurse
}
Copy-Item -Path ..\res -Destination .\d -Recurse -Force
Write-Host "move res file finish" ### step 4 生成MD5文件
if (Test-Path -Path ./d/newUpdateResList1.txt )
{
Remove-Item -Path ./d/newUpdateResList1.txt -Force
}
Get-ChildItem -Path ./d -Recurse | Get-FileHash -Algorithm MD5 | ForEach-Object{ $_.Hash + " "+ (($_.Path -replace ".*\\d\\","\") -replace "\\","/") >> ./d/newUpdateResList1.txt }
Write-Host "make md5 finish" #把utf-8-bom 格式的md5文件转换成 utf-8
$Path = (Get-Location).Path+"\d\newUpdateResList1.txt"
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
$MyFile = Get-Content -Path .\d\newUpdateResList1.txt
[System.IO.File]::WriteAllLines($Path, $MyFile, $Utf8NoBomEncoding) ### step 5 导出差异文件
if ( Test-Path -Path .\newUpdateResList1.txt )
{
$fileCounts = Get-Content -Path .\d\newUpdateResList1.txt
Write-Host ("new md5 file total line " + $fileCounts.Count)
$NewHashFiles = @{}
for( $idx = 0 ; $idx -lt $fileCounts.Count ; $idx++ )
{
$line = $fileCounts[$idx] -split " "
$NewHashFiles[$line[1]] = $line[0]
}
Write-Host ("after hash mapping total line " + $NewHashFiles.Count) $fileCounts = Get-Content -Path .\newUpdateResList1.txt
Write-Host ("old md5 file total line " + $fileCounts.Count)
$OldHashFiles = @{}
for( $idx = 0 ; $idx -lt $fileCounts.Count ; $idx++ )
{
$line = $fileCounts[$idx] -split " "
$OldHashFiles[$line[1]] = $line[0]
}
Write-Host ("after hash mapping total line " + $OldHashFiles.Count) $dirrentHash = @{}
foreach($key in $NewHashFiles.Keys)
{
if ( $OldHashFiles.ContainsKey($key) )
{
if ( $OldHashFiles[$key] -ne $NewHashFiles[$key] )
{
$dirrentHash[$key] = $NewHashFiles[$key]
}
}
else
{
$dirrentHash[$key] = $NewHashFiles[$key]
}
} if ( Test-Path -Path .\c )
{
Remove-Item -Path .\c -Recurse -Force
} $noOutPut = New-Item -ItemType directory ./c -Force Write-Host ""
$dirPath = (Get-Location).ToString() + "\d" -replace "\\","/"
foreach($key in $dirrentHash.Keys)
{
$sourcePath = $dirPath+$key
$targetPath = ".\c"+$key
$sourcePath
$pathParent = Split-Path $targetPath -Parent
if( -not (Test-Path -Path $pathParent) )
{
$noOutPut = New-Item -ItemType directory $pathParent -Force
}
Copy-Item -Path $sourcePath -Destination $targetPath -Force
}
Write-Host "" Copy-Item -Path .\d\newUpdateResList1.txt -Destination .\c -Force
} Write-Host ("total spend time "+ (((Get-Date) - $StartTime).TotalSeconds).ToString() +"s") pause

其它格式的热更新资源列表文件 改改应该也可以用,PowerShell还没入门,写的不好的地方请见谅。

cocos2dx lua 一键资源管理PowerShell脚本实现的更多相关文章

  1. Cocos2d-x教程(26)-Cocos2d-x + Lua脚本实现大地图缩放功能

    欢迎增加 Cocos2d-x 交流群: 193411763 视频教程地址:http://www.tudou.com/programs/view/qRiOfppMghM/ 转载请注明原文出处:http: ...

  2. cocos2d-x lua脚本开发 1

    自从开始关注OpenResty之后,逐渐关注Lua语言,发现这个语言真真是容易让人喜爱的语言.偶然间发现了cocos2d-x,还支持lua,所以果断尝试一下. 这里是在cocos2d-x官方网站下载了 ...

  3. cocos2dx lua 热加载实现

    [Q]原创 2015-08-30 在公司使用cocos2dx+lua 开发游戏有一段时间了,刚好lua的热更新交给我负责.以前热更新的lua脚本大部分都是在下载之后加载.最近策划又有新需求,需要在游戏 ...

  4. 有关PowerShell脚本你必须知道的十个基本概念

    1.PS1文件 一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名 ...

  5. cocos2d-x lua 学习笔记(1) -- 环境结构

    Cocos2d-x 3.0超过环境的版本号来建立和前Cocos2d-x 2.0 差异较大的版本,从同时Cocos2d-x 3.0项目打包成apkAndroid的应用程序文件,步骤,构建环境有些乏味安德 ...

  6. Cocos2d-x Lua 阅读Csv文件,使用数据更方便

    在我的书或出售之前,我的源代码,有Csvshadow文件. 也许这是偏见.我与工作将是最长的轮廓Csv,所以,我会帮助不大喜欢它的游戏. Csv文件,非常格式easy,也就是说,一个数据线,字段之间用 ...

  7. 【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】

    为什么要使用Lua进行游戏开发?转载请注明出处http://www.cnblogs.com/zisou/p/cocos2dx-lua1.html 上面一个问题我觉得在我们使用Lua之前需要深入思考的, ...

  8. cocos2d-x lua 学习笔记(1) -- 环境搭建

    Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...

  9. 创建cocos2d-x+lua项目

    1>     创建cocos2d-x+lua项目 进入到cocos2d-x-2.1.5\tools\project-creator文件夹运行下面命令: python create_project ...

随机推荐

  1. 关于构造器和Serlvet的知识点

    关于java的构造器方法: 1.java构造方法可以有任何的访问修饰符:public.protected.private或者没有修饰(通常被package或者friendly调用)但是不能有非访问性质 ...

  2. laravel开发之-composer安装(windows)

    1 在https://getcomposer.org/download/中下载composer.exe 2 选择php.exe安装composer 3 cmd命令框中输入composer.查看是否安装 ...

  3. H5前端正则验证插件

    最近学习了一个新的关于前端正则验证的插件,‘jQuery.validate.js ’ 要用这个插件 首先得有插件,下载jquery.validate.min.js 和jq文件并引入. 我把它简单的通俗 ...

  4. AngularJS+RequireJs实现动态加载JS和页面的方案研究【下】

    about.js: [html] view plain copy 在CODE上查看代码片派生到我的代码片 define(['app'], function(app) { app.controller( ...

  5. Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法

    新建了一个Android Studio工程,在MainActivity的主界面中添加了两个按钮,点击其中一个按钮用来启动 NormalActivity,点击另一按钮用来启动DialogActivity ...

  6. Django Ajax的使用

    简介: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX ...

  7. [翻译] MAThemeKit

    MAThemeKit https://github.com/mamaral/MAThemeKit MAThemeKit provides iOS developers the ability to c ...

  8. Python学习---Model拾遗[1]180318

    Model: 强大的数据库操作,弱小的数据验证 Form:  强大的数据验证 ModelForm: 强大的数据验证 + 弱小的数据库操作 Model拾遗 Model基本操作 1. 创建数据库表2. 修 ...

  9. [日常] NOIp 2018 滚粗记

    考试前预感到自己会滚大粗 然后发现确实滚了个大粗 ==== €€£ WARNING ==== 因为是后补的所以更新速度比较慢 最后决定把半成品扔出来 预计本周末放假会更完吧 2019.2.25 upd ...

  10. UML设计--人月神教

    任务分配 用例图 类图 活动图 状态图 使用工具 所有图都是用VISO编辑出来的,因为VISO是比较经典工具,也是学校电脑自带的.....