Bulk Copy files onto multiple flash drives at once


I'm trying to get some USB pen drives ready for a large meeting, and i need to copy files onto them before handing them out.
I have 2 USB hubs connected, (4 ports each). so that's 8 ports, well for some reason I can only connect up to 7 drives at once.. Which isn't bad, sure beats connecting just 2 without the hubs.

Do any of you perhaps know of a utility that I can set up to automatically copy data to the drive when a drive is inserted ? or maybe a utility where i can click a few buttons and the data starts copying ?

Any help with this would be greatly appreciated.

Thank you for your time

Who is Participating?
WatzmanConnect With a Mentor Commented:

You could do the copies concurrently in DOS by opening a separate DOS window for each drive and doing one drive (one XCopy command) in each Window.  But it's probably easier just to make up an "image" directory of what is desired, and then open a separate window in "my comptuer" or "windows explorer" for each drive, and then "dragging and dropping" the source image onto each flash drive.

DOS is not a multi-tasking environment, but you can open as many DOS windows as desired.  Howevre, there really is no reason to do this in DOS at all, it was not a parameter or constraint of the original question.
You could create a batch file that does the copying for you.  Create a standard folder on the hard drive to hold the common data.  Then add the following lines to a blank text file:

copy c:\commonfolder e:\destinationfolder
copy c:\commonfolder f:\destinationfolder
copy c:\commonfolder g:\destinationfolder

where e: f: and g: are the drive letters assigned to the usb drives

save the file as "copytousb.bat" - if using notepad to edit the text file you must include the quotes or the file will be called copytousb.bat.txt

insert the drives
double-click the batch file and away they go.

note: you can use xcopy instead of copy for more finite control over the copy process
also: you can add dos batch commands to test for certain conditions or programatically control the copy process

hope this helps

garfield1979Author Commented:
wouldnt that just copy one drive at a time ?
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.


yes, that would copy them sequentially, only one copy operation going at any given time.  And using copy rather than XCopy with the appropriate switches would fail to copy subdirectories (folders) if any.

Make a folder that is the "prototype" of what you want, then just open that folder, and each of the 7 drives, and "drag and drop" the source folder to all 7 destination drives.  The copies will all proceed in parallel.

Note, however, that the bandwidth of the USB channel is being "split" by the use of a hub.  So it the true root USB 2 port has 400 mbps bandwidth, and a hub is plugged in with 4 drives, then each drive will get, on average, only 100 mbps

Many modern motherboards have as many as 8 motherboard root ports.  Use as many of them, and as few hubs, as possible to increase throughput.  Also, in practice, you won't get more than about 1/3 of the "theoretical" total throughput.  With a single USB2 drive (if it can operate at fully USB2 speed, which a flash drive probably can't), you can get about 1 gigabyte per minute, as a very rough average.  Using hubs on fewer root ports will cut this down significantly.
You only need the lines described above in a single batch file.  If your path's have spaces in them, be sure to use quotations like below. Finally, a single asterick * only needs to be entered after the source path. If there are hidden files (autorun?) the /h will copy them.

xcopy "source\*" "destination" /your variables.
xcopy "c:\folder\*" "e:\folder\" /h /e /y
xcopy "c:\folder\*" "f:\folder\" /h /e /y
xcopy "c:\folder\*" "g:\folder\" /h /e /y
The problem with this is the same as the problem with the first post -- the commands in a batch file are executed sequentially.  The 2nd xcopy doesn't start until the 1st xcopy is complete; the 3rd doesn't start until the 2nd is complete, and so on.  It only copies to one drive at a time, when it's possible to have all 7 copies going on currently.  Thus, doing it with a batch file will take a lot longer (up to 7 times as long).

Just doing it in Windows (via "My computer" or "Windows Explorer"), the copies can all be done concurrently, at the same time.
This is just for the sake of clarificatoin. Maybe I don't know anything. But doesn't every dos program have to copy files sequentially? Isn't the definition? You could get a program that says it copies to multiple destinations at the same time, but behind the scenes it is still copying sequentionally. Just curious if I'm off my rocker. Just trying to think of it logically. If a file is in use during the copy process? How is another forked copy process going to access it? It's already in use. Is this right or wrong? Maybe I should post this as a question worth points.
sorry i misunderstood "click a few buttons and the data starts copying"...the comments above are all exactly correct.  

question to the questioner: what is the primary goal - speed or ease?

question to others: would the windows 2000 offline folder / sync tool accomplish this?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.