Followed from your original post in DOS.
In order to test copy speeds you do need to have files of various sizes. Copying of files is not only the transfer of x bytes, there is overhead in opening the file, reading the file om the sending end. On the receiving end, creating file name, writing data, and closing file. If the files are small the may take an appreciable part of the total transfer time. Add the variables of CPU speed, Hard drive speed, Network speed, packet size and drive fragmentation.
I once did a some what similar test in that I wanted to find how long it would take to write a CD with small files on the worse case directory structure. I wrote a program to create files 8 subdirectories deep. The program took 20-30 minutes to create 200 megs of data files. Result, not possible to directly burn the data because of data underrun.
For your problem you will have to set your benchmark baseline. I think you have to copy enough data to saturate the pipeline. I think may be on the order of 50 to 100 MB per batch. Files should be created in a subdirectories to equal the transfer amount.
File Names should be the same length.
To create the files I would use any programming language that you are comfortable in. I used BASIC to create random files with pseudo random data. Ex: For a 1 MB File, Write 10000 records 100 bytes long. For 50 MB transfer make 50 files
To digress: I just thought of something, If you are copying to a mapped drive, then instead have the program create the files on the other computer. This would give the transfer time plus creation time. Run the program on the other computer, That would give creation time direct writing. The difference would be the transfer time. The program could internally clock the transfer time. Just change the parameters and rerun for the different file sizes. Or have I made an incorrect assumption. Scratch the idea, it will only work if there is only 1 write per file size, for files up to max size of variable 32k-64k.
Back to the batch copy.
For timing, The old Norton Utilities (DOS) had a command TIME START | STOP which would act as a stop watch. Probably the are present equivalents that would work.
Good Luck, Interesting