2013-07-19 11 views
23

Chcę, aby określony katalog był kopiowany do folderu wyjściowego ("bin") na każdej kompilacji. Myślę, że można to zrobić za pomocą skryptów do budowania postów. Ale nie jestem pewien, jak skopiować sam katalog. Wiem, jak obsługiwać określone pliki.Skopiuj cały katalog do folderu wyjściowego zachowując strukturę folderów?

Np, to działa w przypadku pliku:

W

Projekt> Właściwości> Budowanie Imprezy> Po Budowanie

COPY "$(SolutionDir)Resources\Release Notes.pdf" "$(TargetDir)" 

Ale załóżmy mam katalog Template, teraz potrzebuję wszystkiego, co będzie pod Template do folderu bin po pomyślnej kompilacji z zachowaniem struktury folderów.

Próbowałem to:

COPY "$(SolutionDir)Resources\Template\" "$(TargetDir)" 

Wyłącznie pliki w Template katalogu zostanie skopiowany w ten sposób, a nie sub katalogów i plików wewnątrz Template folderu. Chcę, aby sam folder znajdował się wewnątrz mojego folderu wyjściowego bin. Innymi słowy, bin powinna wyglądać następująco:

bin > Template > abc.xxx 
       xxx.yyy 
       Subdirectory1 > asd.qwe 
           zxc.qwe 
       Subdirectory2 > ... 

To może być duplikat, ale nie mogłem znaleźć odpowiedniego wątku. Dzięki.

Odpowiedz

23

Ten pracował dla mnie. /S to klucz, który kopiuje wszystko rekursywnie.

XCOPY "$(SolutionDir)Resources\Template" "$(TargetDir)\Template\" /S 

ponieważ chciałem pliki mają być zastępowane za każdym razem, bez zachęty, dodałem przełącznik /Y również.

XCOPY "$(SolutionDir)Resources\Template" "$(TargetDir)\Template\" /S /Y 
+9

/S zignoruje puste foldery. Aby skopiować wszystko, w tym puste foldery, użyj/E zamiast tego. –

16

Wypróbuj XCOPY zamiast COPY; na przykład

XCOPY "$(SolutionDir)Resources\Template\" "$(TargetDir)" /s /i /y 

Więcej informacji na XCOPY tutaj ...

http://www.computerhope.com/xcopyhlp.htm

+2

+1 za wskazanie odpowiedniego kierunku. Ale nie sprawiło, że twoje rozwiązanie działało. Musiałem określić docelowe miejsce docelowe "Szablon" w drugim argumencie. I nie jestem pewien, czy '/ I' jest naprawdę potrzebny. Zamiast edytować twoje, zrobiłem to jako oddzielną odpowiedź. – nawfal

+1

Zauważ, że możesz przejść do katalogu powyżej SolutionDir używając XCOPY "$ (SolutionDir). \ Resources \ Template" "$ (TargetDir)"/S/I/Y –

Powiązane problemy