2009-05-28 12 views
27

Vorrei copiare diversi file noti in un'altra directory come parte di un evento post-build, ma non voglio avere linee e righe di "copia [file] [destinazione] [opzioni]" nella mia build evento. Se possibile, vorrei elencare i file che vorrei copiare utilizzando un formato simile: "copia [file 1] [file 2] [file 3] [ecc.] [Destinazione] [opzioni]" . Tuttavia, a Windows non sembra piacere questo tipo di formato. Qualche idea? Grazie!Posso copiare più file con nome sulla riga di comando di Windows usando un singolo comando "copia"?

risposta

41

È possibile utilizzare 'per' o in un file batch oppure direttamente dal prompt dei comandi:

for %I in (file1.txt file2.txt file3.txt) do copy %I c:\somedir\ 

caratteri jolly sono supportati nel filelist così:

for %I in (*.txt *.doc *.html) do copy %I c:\somedir\ 

Per ulteriori informazioni, basta scrivi per /? da un prompt dei comandi o per una guida più facile da leggere, utilizzare Start-> Guida e supporto e cercare "Per". Nella mia scatola XP Pro, era la voce 15 nei risultati di ricerca a tutto testo.

+3

Funziona come un fascino! L'unica cosa è che devo raddoppiare i miei segni di percentuale quando sono usati in un evento di build (cioè per %% I in ...). Grazie!! – Pwninstein

+0

SE i file sono in sottocartelle aggiungi '/ f' come' per/f %% I in (* .txt * .doc * .html) copia% I c: \ somedir \ ' – Matheus

2

Utilizzare <Copy> MSBuild task.

+0

La domanda non suggerisce .NET è anche installato, e che richiederebbe lo sviluppo di uno script MS Build. È già ingombrante solo fare una copia da riga di comando; perché aggiungere tutto questo in cima? – jpmc26

+0

la domanda parla della copia "come parte di un evento post-build". usare MSBuild era naturale per me. –

+0

@DavidSchmitt Penso che questo sia quello che voglio ma non sono sicuro di come posso usarlo in un evento di build. Puoi mostrare la sintassi per farlo? –

15

XP e Vista sostituiti xcopy con robocopy, e farà esattamente quello che vuoi. La sintassi per ciò che si desidera si sente indietro, ma fa il lavoro:

robocopy source\folder a\dest\folder file1.exe file2.bat file3.dll file4.txt 
+1

(versioni precedenti almeno) di XP non include robocopy, è necessario installare se da qualcosa come il kit di risorse del server Windows 2003: http://www.microsoft.com/Downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang = it – Dolphin

+0

@Dolphin: buona cattura; L'ho avuto sulle mie macchine XP e non ricordo di averlo installato da solo, ma hai ragione. – Kevin

+2

Né XP né Vista hanno "sostituito" xcopy. È ancora lì. – Timwi

Problemi correlati