2009-08-26 11 views
3

J'ai un script PowerShell que j'utilise pour créer des distributions qui copient des fichiers compilés à partir de quelques endroits et les zippe avec winrar. Dans le script, je change dans un répertoire contenant les dossiers que je veux lancer et exécuter ceci:Exclusion de répertoires .svn avec WinRar

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

qui exécute en fait ceci:

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 

Pourtant, aucun des répertoires .svn sont exclus de la fichier zip. Cela a l'habitude de travailler et je ne sais pas pourquoi cela ne fonctionne pas maintenant, mais je ne peux pas l'obtenir pour exclure les bons fichiers.

Le script complet est disponible sur CodePlex à http://resourceblender.codeplex.com/sourcecontrol/changeset/view/27742?projectName=resourceblender#456701 (en bas du script)

Quelqu'un pourrait-il avec une certaine expérience dans PowerShell faire la lumière sur cette s'il vous plaît?

+0

Il s'agit davantage d'un problème de ligne de commande winrar, et non de powershell. – RaYell

Répondre

11

La bonne façon de faire est d'effectuer une exportation svn qui créera une copie du projet sans les répertoires .svn (et toute autre chose non contrôlée par la version) et ensuite faire le zip.

+0

Je sais, mais je préférerais ne pas écrire de scripts supplémentaires maintenant pour exporter une copie. L'alternative est juste Remomve-Item -Recurse que je veux éviter si possible. – Echilon

+0

c'est une très belle réponse à une question différente – Victor

1

Je suis d'accord avec le commentaire de Neil Butterworth concernant l'utilisation de la commande svn export étant plus approprié dans ce cas. En parlant de WinRar, vous pouvez utiliser un commutateur -e pour ignorer les dossiers cachés (.svn est un dossier caché) et un commutateur -ep pour l'exclure par son nom.

S'il vous plaît se référer à WinRar manual pour plus d'informations

+0

Je sais que cela devrait fonctionner, mais ajouter -eh aux commutateurs n'a aucun effet. Cela commence vraiment à me dérouter, les dossiers .svn sont définitivement cachés. – Echilon

1

J'ai eu le même problème et trouvé cette page sans solution, donc pour d'autres personnes googler le commutateur correct est:

-x*\.svn\* 
+1

C'était en fait l'une des combinaisons qui n'a pas fonctionné pour moi. – Echilon

-1

Je fini par utiliser

-x*\.svn* 

Ceci ignorera le dossier .svn actuel et pas seulement tout ce qu'il contient. J'utilise aussi WinRAR 3.80. Avez-vous essayé de mettre à jour votre version de winrar?

Pensée de la méthode d'exportation svn élaboré beaucoup mieux pour moi parce que je n'ai pas tout le debug et divers .dlls

12

J'ai eu le même problème, résolu en utilisant:

-x*.svn\ 

J'utilise WinRar v3.93 pour Windows. Veuillez noter le backslash final.

+1

Le dernier backslash * résolu par problème. Merci – BeardinaSuit

1

Il s'agit d'un problème avec PowerShell. J'ai mis la même commande dans l'invite de commande et BOOM!

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