2009-08-26 12 views
3

Ich habe ein PowerShell-Skript, das ich zum Erstellen von Distributionen verwende, das kompilierte Dateien von einigen Stellen kopiert und sie mit winrar zippt. Im Skript ändern, die ich in einem Verzeichnis die Ordner mit Das möchte ich laufen und ausführen:Ausschließen von .svn-Verzeichnissen mit WinRar

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

Welche dies tatsächlich ausführt:

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 

Doch keine der .svn Verzeichnisse werden von der ausgeschlossen zip-Datei. Dies hat früher funktioniert und ich habe keine Ahnung, warum es jetzt nicht funktioniert, aber ich kann es nicht dazu bringen, die richtigen Dateien auszuschließen.

Das vollständige Skript ist auf Codeplex bei http://resourceblender.codeplex.com/sourcecontrol/changeset/view/27742?projectName=resourceblender#456701 (am unteren Rand des Skripts)

Könnte jemand mit etwas Erfahrung in Powershell etwas Licht in diese Schuppen bitte?

+0

Dies ist eher ein winrar-Befehlszeilenproblem, nicht Powershell. – RaYell

Antwort

11

Der richtige Weg, dies zu tun, ist eine Svn Export, die eine Kopie des Projekts ohne die .svn Verzeichnisse (und alles andere nicht versionsgesteuerte) erstellen und dann die Zip zu tun.

+0

Ich weiß, aber ich möchte jetzt lieber keine zusätzlichen Skripte schreiben, um eine Kopie zu exportieren. Die Alternative ist nur Remomve-Item -Recurse, die ich möglichst vermeiden möchte. – Echilon

+0

das ist eine sehr schöne Antwort auf eine andere Frage – Victor

1

Ich stimme mit Neil Butterworth Kommentar in Bezug auf die Verwendung der svn export Befehl ist in diesem Fall passender. Im Gespräch über WinRar können Sie einen -e Schalter verwenden, um versteckte Ordner zu überspringen (.svn ist ein versteckter Ordner) und ein -ep Schalter, um es namentlich auszuschließen.

Bitte beachten Sie WinRar manual für weitere Informationen

+0

Ich weiß, das sollte funktionieren, aber das Hinzufügen von -eh zu den Schaltern hat keine Wirkung. Das verwirrt mich wirklich, die .svn-Ordner sind definitiv versteckt. – Echilon

1

Ich hatte das gleiche Problem und fand diese Seite ohne Lösung, so dass für andere Leute es den richtigen Schalter googeln ist:

-x*\.svn\* 
+1

Das war eigentlich eine der Kombinationen, die bei mir nicht funktionierten. – Echilon

-1

ich landete mit

-x*\.svn* 

Dies ignoriert den tatsächlichen .svn-Ordner und nicht nur alles darin. Ich benutze auch WinRAR 3.80. Haben Sie versucht, Ihre Winrar-Version zu aktualisieren?

Dachte, die svn export Methode funktionierte für mich viel besser aus denn ich nicht alle Debug bekommen haben baut und misc .dlls

12

Ich hatte das gleiche Problem, gelöst werden:

-x*.svn\ 

Ich benutze WinRar v3.93 für Windows. Bitte beachten Sie den letzten Backslash.

+1

Der letzte * Backslash * wurde durch das Problem gelöst. Vielen Dank – BeardinaSuit

1

Dies ist ein PowerShell-Problem. Ich habe den gleichen Befehl in die Eingabeaufforderung und BOOM!

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