robocopy experts

I have a terminal server that has an application that we want to export on a regular basis.  A robocopy will work find on it, but the source is by default every user's document folder. I know there is a exclusion, but I do not want to write the source custom for every user that has a profile on the server (about 40 of them), and I also only need two specific folders in their Document folder.  It would also be handy because as people join the team, I do not want to have to also remember to add to this batch.

the folders in question are found in "c:\documents and settings\%username%\folder1" and "folder2".  I tried exclusions, but it wants the entire path to exclude, which is the same problem as the the inclusive batch, meaning I do not want to type out everyone's user names into this script nor modify it when new people join the team.


Any ideas?
LVL 9
tsaicoAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
oBdAConnect With a Mentor Commented:
The batch script (whatever.cmd) below will scan all user profiles for a given list of folders and copy those over to a defined target folder.
The script should work on W2k8/Vista/Win7 as well, the profile root is determined automatically.
It's currently in test mode and will only display the commands it would run in normal mode; remove the capitalized ECHO in front of "if exist" to run it for real.
@echo off
setlocal
:: *** The folder(s) to copy below the profile folder:
set FolderList="Folder 1" "Folder 2"
:: *** Path to the backup location:
set TargetRoot=D:\Temp
:: *** robocopy log file; %~dpn0 will expand to the script's path and name:
set LogFile=%~dpn0.log
:: *** Options for robocopy (except for source and target folder)
set RCOptions=/COPY:DAT /MIR /R:0 /W:0 /TEE /LOG+:"%LogFile%" /NP
:: *** No changes necessary below this line
if exist "%LogFile%" del "%LogFile%"
for /f "tokens=2*" %%a in ('reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProfilesDirectory" ^| find /i "ProfilesDirectory"') do call :expand ProfileRoot "%%b"
echo Profile root: %ProfileRoot%
for /d %%a in ("%ProfileRoot%\*.*") do (
  echo Processing %%~nxa ...
  for %%f in (%FolderList%) do (
    ECHO if exist "%%a\%%~f" robocopy.exe "%%a\%%~f" "%TargetRoot%\%%a\%%~f" %RCOptions%
  )
)
goto :eof

:expand
set %1=%~2

Open in new window

0
 
Luciano PatrãoICT Senior Infraestructure  Engineer  Commented:
Hi

Here you can find robocopy commands and some examples. Also some other tools that can be use to copy/migrate folders/files

http://ss64.com/nt/robocopy.html

Jail
0
 
rhinocerosCommented:
Good example: Use robocopy to copy the user profiles

More info:
http://ts.veranoest.net/ts_faq_profiles.htm
0
 
tsaicoAuthor Commented:
This is good, while it runs under a particular profile, I was hoping to run it under a scheduled task under my own, this will work.  THanks!
0
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.