Mirror only directories that exist in destination

I am trying to copy data from an old file server to a new one.  Some of the users on the old one aren't coming to the new system.  I did a robocopy job where i just mirrored the directories and not any data and then had the admins go through and delete any users that aren't coming to the new system.

Now I just need to determine how I can tell robocopy to only mirror data for directories that exist on the destination.  Is that possible?
WaidentAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
WaidentConnect With a Mentor Author Commented:
thanks for the help guys...unfortunately I ended up having to just move the users drives manually into a separate folder on the source side so i could do a full copy job.  
0
 
SylvainDrapeauCommented:
Hello !

XCOPY /U does just that, but I can't find an option in ROBOCOPY that looks like this.

Syldra
0
 
QlemoDeveloperCommented:
The only way I can think of to achieve that is to maintain a exclusion list of folders with the /XD option. You can obtain that list by:

@echo off
setlocal EnableDelayedExpansion
dir /a:+d /s /b \\srcserver\share\  > srcdirs.txt
dir /a:+d /s /b \\dstserver\share\  > dstdirs.txt
set xdirs=
for /F %%D in ('findstr /v /L /g:dstdirs.txt srcdirs.txt') do set xdirs=!xdirs! "%%D"
robocopy ... /XD %xdirs% ...

(You need to fill out the remainder of the robocopy to your liking).
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
QlemoDeveloperCommented:
xcopy /u does not refer to folders, only to files ...
0
 
Bill PrewCommented:
Just to toss another option out there, I don't think ROBOCOPY can do it all in one step.  But you could wrap the ROBOCOPY usage in a small BAT script that looks at the directories in the source location, and only does a ROBOCOPY of that folder if it exists in the destination location.  So it would look like this (I didn't try to put options on the ROBOCOPY, you likely have a set of those from the first copy):

@echo off
setlocal EnableDelayedExpansion
set FromDir=\\srcserver\share
set DestDir=\\dstserver\share
for /D %%A in ("%FromDir%\*") do (
  if exist "%DestDir%\%%nA" (
    robocopy "%FromDir%\%%nA\" "%DestDir%\%%nA\"
  )
)

~bp
0
 
SylvainDrapeauCommented:
@Qlemo : I have not tested it but after reading the description again, I believe you are correct. My apologies.

Syldra
0
 
QlemoDeveloperCommented:
I'm convinced that both my and Bill solutions are working and feasible. Any reason why you could use neither?
0
 
WaidentAuthor Commented:
compiling the list and writing a script was more complex than simply moving the directories I needed into a subfolder and mirroring the whole directory.

I have no problem awarding you guys the points...you did provide options, i just thought that I only reward points when I use the solutions provided and they work which in this case I did not and since I didn't I have no way of knowing whether they would work or not.  

0
 
QlemoDeveloperCommented:
What you did was alright. You should just have added the last comment to your closing request. I've asked because it might not have worked for any reason, and that would be important to know for us.
0
 
WaidentAuthor Commented:
Gotcha...noted for next time.  

I do appreciate the answers, as always...in this case I was looking for a simple answer to avoid the manual process but when I saw that there was no simple answer I went with a way I know will work as I couldn't afford any mistakes.  

 
0
 
QlemoDeveloperCommented:
No bad choice.
0
 
WaidentAuthor Commented:
no solution provided...did my own workaround
0
All Courses

From novice to tech pro — start learning today.