RoboCopy to Changing External Drives

Background:  I have archived a ton of data to an external hard drive (lets call this drive EXT-A) to free up space on the internal drives of a Windows Server 2012 R2 server.  EXT-A will remain permanently attached to the server.  This archived data will likely not be needed again, but I have to preserve it just in case (sort of like your old tax returns.)  Because losing this archive data is not an option, I have two additional external hard drives of the same size (we'll call these EXT-B and EXT-C, respectively), which will serve to backup the archive data.  I want to mirror the data from EXT-A to EXT-B or EXT-C (whichever one happens to be attached.)  EXT-B and EXT-C will never be attached concurrently...when one is attached, the other will be located offsite and vice versa...these two drives will be swapped weekly.  

In addition, the server to which these drives are attached is a Hyper-V host.  Since Hyper-V won't let me map EXT-A through to the file server, FS1 (which is a VM), I have created a file share on EXT-A so that data can be moved from FS1 to EXT-A via the file share.  We generate a lot of this 'archive'-class data and will move data from FS1 to EXT-A at least monthly if not weekly.  

Challenge:  I can create a RoboForm script that will mirror the data from EXT-A to EXT-B.  The problem lies in the fact that I need to swap between EXT-B and EXT-C, so that we always have a reasonably up to date copy of the archive data stored offsite.  There seem to be a couple of issues:  (1) The drive letters of EXT-B and EXT-C can't be relied upon to stay the same.  (2) If you setup a file share on EXT-B or EXT-C, the file share will disappear upon disconnecting EXT-B or EXT-C.  

It's not mandatory to use RoboCopy, but that is what I'm most familiar with.  

Any ideas of how to make this work well?
Who is Participating?
NVITConnect With a Mentor Commented:
Give each drive a unique Label, e.g. EXT-A, EXT-B, EXT-C.
Then, run a WMIC query for the Label that matches "EXT-".
The result shows the drive letter, which you can pass to robocopy.

Make a .bat file of this. Open a CMD window and run the .bat:
@echo off
for /f "tokens=1-4 delims=," %%a in ('WMIC PATH Win32_Volume WHERE "Label LIKE '%%EXT-%%'" GET DriveLetter^,DriveType^,Label /format:csv ^|find /i "EXT-"') do (
  echo robocopy /e "\\server\share\folder" "%%b\"

Open in new window

whc4Author Commented:
Excellent!  Thank you!
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.