Mark Carpenter
Mark Carpenter

Reputation: 17775

Can I copy multiple named files on the Windows command line using a single "copy" command?

I'd like to copy several known files to another directory as a part of a post-build event, but I don't want to have lines and lines of "copy [file] [destination] [switches]" in my build event.

If possible, I'd like to list out the files I'd like to copy using a similar format: "copy [file 1] [file 2] [file 3] [etc...] [destination] [switches]". However, Windows doesn't seem to like this type of format. How can I do it?

Upvotes: 39

Views: 98919

Answers (3)

Kevin
Kevin

Reputation: 8561

XP and Vista replaced xcopy with robocopy, and it will do exactly what you want. The syntax for what you want feels backwards at first, but it does the job:

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

Upvotes: 34

Ken White
Ken White

Reputation: 125749

You can use 'for' either in a batch file or directly from the command prompt:

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

Wildcards are supported in the filelist as well:

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

For more info, just type for /? from a command prompt, or for a much easier to read help use Start->Help and Support and search for "For". On my XP Pro box, it was item 15 in the full text search results.

Upvotes: 57

David Schmitt
David Schmitt

Reputation: 59375

Use the <Copy> MSBuild task.

Upvotes: 1

Related Questions