我有一个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方面有一定经验的人能否对此有所了解?
答案 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