编辑注意:此文件被选为Matlab Central挑选本周
此条目非常适合那些有项目需要部署到P文件的人,但他们希望为所有部署的文件保留帮助内容。
-
DeployPcode递归地在给定文件夹中创建M-Files的P代码版本
deploypcode(源,目标)将递归地搜索所有.m文件的源文件夹
使用下面的默认选项将其作为p-files部署到目标文件夹。
deploypcode(...,'propertyname',值,'propertyname',值,...)使用以下选项
部署P码时:
'recurse' - 当真实(默认)将递归地从源文件夹重新递送P代码。
“Ignorstrings” - 字符串或单元格列表中的字符串数组以忽略。正则表达式
使用语法。
'ignorevn' - 忽略“.svn”目录的其他真/假选项。相当于
添加{'^ \。svn $'}“Ignorstrings”。为方便起见默认为true。
“includhelp” - matlab的pcode()删除包括帮助部分(包括帮助部分)的所有评论
运行时的文件。将此选项设置为true(默认)将导出
其他.m文件仅包含文件的帮助内容
部署。这意味着MyFunction.M将部署到MyFunction.p,
但是,请调用“帮助MyFunction”仍将返回帮助文本。
'updateOnly' - 当True时,只有在尚未创建目的地P-Files时
存在或比被编码的M文件较大。默认为false。
“copyDirectrings” - 字符串或单元格列表中的字符串数组,用于直接复制到目标
文件夹没有加密。使用正则表达式语法。
'copyfigfiles' - 直接复制“.fig”文件的其他真/假选项。相当于
将{'\ .fig $'}添加到“CopyDirectStrings”。为方便起见默认为true。
'copyDllfiles' - 将“.dll”文件直接复制“.dll”文件的其他真/假选项。相当于
将{'\ .dll $'}添加到“copyDirectrings”。为方便起见默认为true。
'copymexfiles' - 直接复制MEX文件的其他真/假选项。默认为true
为了方便。
'flattenfiletree' - 当真实(默认)时,常规m文件只开为p-files
最初提供的目标文件夹(而不是在任何子目录下)。
当此选项设置为false时,源下的文件结构
目录将在目标上复制。
例子:
deploypcode('c:\ sven \ compancebla_sahm \ matlab \ sahm \','u:\ sahm \ matlab \ _includes \ sahm','updateonly',true)
由Sven Holcombe撰写2011年10月
作者注意:
虽然我一般反对不必要的.m文件加密(这将是针对这个文件交换的精神,一个),我需要一个诸如此之外的工具,以便认为其他人可能需要相同的方法。
Sven(2021)。deploypcode(source_dir,target_dir,varargin)(//www.tatmou.com/matlabcentral/fileexchange/26919-deploypcode-source_dir-target_dir-varargin),matlab中央文件交换。检索到。
伟大的工具。不适用于字符串的输入,这花了一分钟才能弄清楚,但一旦喂食传统的Char数组。
漂亮的工具,帮助了我很多!
非常感谢这个伟大的工具。
这正是我正在寻找的!
谢谢Sven。
我有一个问题,开发人员将在生产机器上去生产机并在正式发布后“微调”代码。
仅使用函数部署PCODE将消除该问题。
谢谢!!
优秀的。当Flattenfiletree == false时,它就像一个魅力。良好的工作,非常感谢!
非常好的脚本。优异的适用性。
忘了评价......
谢谢Adrea,很高兴它帮助了你,非常感谢更新。我会在下次更新中查看并将它们纳入其中。
精彩的工作,救了我很多时间!
我注意到它会窒息没有句子上正确的文件。我修改了代码只需跳过这些文件并发出警告。此外,我还添加了复制DLL文件和MEX文件的选项。我知道它是一个差别,因为我可以使用'copydirectrings'选项,但我发现可能很常见,可以复制这些文件。以下是对应于我的修改的补丁:
http://andreavaccaro.org/files/deploypcode.patch.
如果您想将此修补程序包含在代码中,请随时修改您的愿望
欢呼,再次感谢您的代码
@DBS:很高兴这是有帮助的。我刚刚上传了一个新版本,允许“CopyDirectrings”作为参数,在那里您可以在其中设置要直接从源复制到目标的文件名(通过regexp)。
这是你在寻找的吗?
伟大的功能sven,救了我很多时间!但如果它转移了其他可选文件,那将是完美的。例如,在我的情况下,我需要从源部署一些.txt,.pdf和.xls。同时,我会尝试在代码中插入它。干杯!
做得好。这是非常好的代码。很明显,您喜欢编码此功能。评论像“棘手的小函数......”和“偷偷摸摸地强迫......”是宝石:)
@GREG:当然,我上传了一个新版本,允许FlattentReefile = false选项生效。
您可以实现关闭Flattenfiletree的选项吗?
顺便说一句伟大的剧本。