Don’t use & in file and folder names.
With that little pearl of wisdom out of the way, what about when your users have used ampersand characters in their folder names and you’re trying to robocopy the data to it’s new home, only to have the copy fail?
Try this…
SET “source=dogs & cats”
SET “destination=dogs & cats”
or if you can get away with it without breaking links…
SET “destination=dogs and cats”
robocopy.exe “%source%” “%destination%” /MIR
For more robocopy wisdom, check this post here
In real-world practice, I have found that robocopy is woefully unreliable when it comes to copying permissions (using the /e /sec /xf * switches). I recommend using emcopy to copy folder structures and their NTFS permissions. Similar to the robocopy commands above, these emcopy commands worked almost* perfectly for me
SET “source=dogs & cats”
SET “destination=dogs and cats”
emcopy “%source%” “%destination%” /secfix /xf * /lev:1
*Note how I’ve changed the destination folder to not include the ampersand character. In practice, permissions were not copied to folders with ampersands in the name using robocopy or emcopy – in fact robocopy didn’t copy permissions at all!
If you’re copying a subset of data from a bigger source set of data, then never use /MIR or you will run a high risk of loosing data. Oh yes you will. Use the above emcopy commands one folder at a time to get your destination folder structure in place, before finally syncing the subfolder you want into the new destination. This saves a potentially troublesome cleanup exercise later, deleting superfluous data, e.g.
SET “source=dogs & cats”
SET “destination=dogs and cats”
emcopy “%source%” “%destination%” /secfix /xf * /lev:1
Followed by…
SET “source=dogs & cats\spaniels”
SET “destination=dogs and cats\spaniels”
emcopy “%source%” “%destination%” /secfix /xf * /lev:1
Followed by…
SET “source=dogs & cats\spaniels\springer”
SET “destination=dogs and cats\spaniels\springer”
emcopy “%source%” “%destination%” /secfix /xf * /lev:1
and finally sync your file data into the new secured folder structure…
SET “source=dogs & cats\spaniels\springer”
SET “destination=dogs and cats\spaniels\springer”
Synchronise all file data using your preferred robocopy or emcopy command here.