3

我有一个 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经验的人对此有所了解吗?

4

6 回答 6

13

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

-x*.svn\

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

于 2010-08-25T12:38:41.140 回答
11

这样做的正确方法是执行svn 导出,它将创建一个没有 .svn 目录的项目副本(以及任何其他不受版本控制的内容),然后执行 zip。

于 2009-08-26T08:37:30.560 回答
2

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

winrar a -ehs -x*\.svn\* -u -r -afrar -m3 "dest file.rar" "source folder"
于 2014-02-25T19:00:29.163 回答
1

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

-x*\.svn\*
于 2009-09-17T08:25:53.203 回答
1

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

更多信息请参考WinRar 手册

于 2009-08-26T09:14:51.953 回答
-1

我最终使用

-x*\.svn*

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

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

于 2010-02-08T21:53:01.080 回答