Link to home
Start Free TrialLog in
Avatar of Waident
Waident

asked on

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?
Avatar of Sylvain Drapeau
Sylvain Drapeau
Flag of Canada image

Hello !

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

Syldra
Avatar of Qlemo
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).
xcopy /u does not refer to folders, only to files ...
Avatar of Bill Prew
Bill Prew

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
@Qlemo : I have not tested it but after reading the description again, I believe you are correct. My apologies.

Syldra
ASKER CERTIFIED SOLUTION
Avatar of Waident
Waident

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I'm convinced that both my and Bill solutions are working and feasible. Any reason why you could use neither?
Avatar of Waident

ASKER

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.  

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.
Avatar of Waident

ASKER

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.  

 
No bad choice.
Avatar of Waident

ASKER

no solution provided...did my own workaround