2013-07-19 31 views
23

Voglio una directory specifica da copiare nella cartella di output ("bin") su ogni build. Penso che possa essere gestito tramite script post-build. Ma non sono sicuro di come copiare una directory stessa. So come gestire file specifici.Copia l'intera directory nella cartella di output mantenendo la struttura delle cartelle?

Per esempio, questo funziona per un file:

In

Progetto> Proprietà> Eventi di generazione> Post Costruire

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

Ma supponiamo che ho un directory Template, ora ho bisogno di tutto sotto Template venire alla cartella bin in caso di successo della build mantenendo la struttura della cartella.

ho provato questo:

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

solo i file nella directory Template viene copiato in questo modo e non le sotto cartelle ei file all'interno della cartella Template. Voglio che la cartella Template entri nella mia cartella di output bin. In altre parole, bin dovrebbe essere simile:

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

Questo potrebbe essere un duplicato, ma non riuscivo a trovare un filo rilevante. Grazie.

risposta

23

Questo ha funzionato per me. /S è la chiave che copia tutto in modo ricorsivo.

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

dato che volevo file sovrascritti ogni volta, senza un prompt, ho aggiunto un interruttore /Y pure.

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

/S ignorerà le cartelle vuote. Per copiare tutto, comprese le cartelle vuote, utilizzare/E al suo posto. –

16

Provare XCOPY anziché COPY; per esempio.

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

Maggiori informazioni XCOPY qui ...

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

+2

+1 per avermi dato la giusta direzione. Ma non ho trovato la tua soluzione funzionante. Avevo bisogno di specificare il 'Modello di destinazione destinazione 'nel secondo argomento. E non sono sicuro se '/ I' sia davvero necessario. Invece di modificare il tuo, l'ho fatto come una risposta separata. – nawfal

+1

Si noti che è possibile passare a una directory sopra SolutionDir utilizzando XCOPY "$ (SolutionDir) .. \ Resources \ Template" "$ (TargetDir)"/S/I/Y –