使用WinRar排除.svn目录

时间:2009-08-26 08:34:13

标签: svn powershell winrar

我有一个PowerShell脚本,我用它来创建从几个地方复制编译文件并使用winrar压缩它们的发行版。在脚本中,我切换到包含我想要运行的文件夹的目录并执行它:

Invoke-Expression ($WinRAR + " a " + $zipPath + " " + $WinRARFilter + " " + $DistName + "-zip " + $WinRAROpts)

实际执行此操作:

E:\Progs\WinRar\WinRar.exe a C:\Users\Echilon\Documents\Coding\ResourceBlender-Express\trunk\dist\resourceblender-express_1.44-zip.zip -x*\.svn\* -x*\.svn -x\.svn resourceblender-express-zip -r -s -m5 -inul

然而,没有.svn目录从zip文件中排除。这曾经工作,我不知道为什么现在没有,但我不能让它排除正确的文件。

完整脚本位于http://resourceblender.codeplex.com/sourcecontrol/changeset/view/27742?projectName=resourceblender#456701的codeplex上(位于脚本底部)

有一些在PowerShell方面有一定经验的人能否对此有所了解?

6 个答案:

答案 0 :(得分:12)

我有同样的问题,使用以下方法解决:

-x*.svn\

我在Windows上使用WinRar v3.93。请注意最后的反斜杠。

答案 1 :(得分:11)

执行此操作的正确方法是执行 svn export ,这将创建没有.svn目录的项目副本(以及其他任何不受版本控制的项目),然后执行zip。< / p>

答案 2 :(得分:1)

我同意Neil Butterworth关于在这种情况下使用svn export命令更合适的评论。 谈论WinRar您可能会考虑使用-e切换来跳过隐藏文件夹(.svn是隐藏文件夹)和-ep切换以按名称排除隐藏文件夹。

有关详细信息,请参阅WinRar manual

答案 3 :(得分:1)

我遇到了同样的问题,发现这个页面没有解决方案,所以对于其他人用谷歌搜索正确的开关是:

-x*\.svn\*

答案 4 :(得分:1)

这是一个PowerShell问题。我在命令提示符和BOOM中放了相同的命令!

winrar a -ehs -x*\.svn\* -u -r -afrar -m3 "dest file.rar" "source folder"

答案 5 :(得分:-1)

我最终使用

-x*\.svn*

这将忽略实际的.svn文件夹而不仅仅是其中的所有内容。我也在使用WinRAR 3.80。您是否尝试更新过winrar版本?

认为svn导出方法对我来说效果更好,因为我没有得到所有的调试版本和misc .dll