2009-05-28 9 views
27

Me gustaría copiar varios archivos conocidos a otro directorio como parte de un evento posterior a la construcción, pero no quiero tener líneas y líneas de "copiar [archivo] [destino] [modificadores]" en mi compilación evento. Si es posible, me gustaría enumerar los archivos que me gustaría copiar usando un formato similar: "copiar [archivo 1] [archivo 2] [archivo 3] [etc ...] [destino] [cambiar]" . Sin embargo, a Windows no parece gustarle este tipo de formato. ¿Algunas ideas? ¡Gracias!¿Puedo copiar varios archivos con nombre en la línea de comandos de Windows con un solo comando de "copia"?

Respuesta

41

Puede usar 'para', ya sea en un archivo por lotes o directamente desde la línea de comandos:

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

de comodines en la lista de archivos, así:

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

Para obtener más información, simplemente escriba para /? desde un símbolo del sistema, o para una ayuda mucho más fácil de leer, use Inicio-> Ayuda y soporte y busque "Por". En mi cuadro XP Pro, era el elemento 15 en los resultados de búsqueda de texto completo.

+3

¡Funciona como un encanto! Lo único es que tengo que duplicar mis signos de porcentaje cuando se usa en un evento de compilación (es decir, para %% I en ...). ¡¡Gracias!! – Pwninstein

+0

SI los archivos están en subcarpetas agregue '/ f' como' para/f %% I en (* .txt * .doc * .html) copie% I c: \ somedir \ ' – Matheus

2
+0

La pregunta no sugiere .NET está aún instalado, y que requeriría el desarrollo de un MS Creación de un script. Ya es engorroso hacer una copia de línea de comando; ¿por qué agregar todo eso en la parte superior? – jpmc26

+0

la pregunta se refiere a copiar "como parte de un evento posterior a la construcción". usar MSBuild fue natural para mí. –

+0

@DavidSchmitt Creo que esto es lo que quiero, pero no estoy seguro de cómo puedo usar esto en un evento de compilación. ¿Puedes mostrar la sintaxis para hacer eso? –

15

XP y Vista reemplazados xcopy con robocopy, y se van a hacer exactamente lo que quiere. La sintaxis de lo que quiere siente hacia atrás al principio, pero hace el trabajo:

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

(versiones anteriores al menos) de XP no incluyen robocopy, necesita instalar algo parecido al kit de recursos del servidor de Windows 2003: http://www.microsoft.com/Downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang = en – Dolphin

+0

@Dolphin: buena captura; Lo tenía en mis máquinas XP y no recordaba haberlo instalado, pero tienes razón. – Kevin

+2

Ni XP ni Vista "reemplazaron" xcopy. Todavía está allí. – Timwi

Cuestiones relacionadas