I wrote this quick Powershell script where it queues vMotion of VMs and runs only 4 vMotion tasks at a time. I thought this might help someone, so you are free to modify the code as per your like.
We were moving VMs to 2 different datastore for a DR exercise overnight.
I have placed comments in the script, but if you have any questions, please comment below. I am sure this can be done in a much better way, but this was a quick thing as I had to leave it running, so the VMs are migrated overnight.
The main command that helped me was get-task.
I am not sure why I didn't have to specify Host for vMotion but VMs were migrated to correct hosts, Maybe DRS took care of that