Back when my workplace migrated from Windows XP to Windows 7, I became lazy and automated backing up and restoring a users profiles important files in a batch script.
Here I backup to the drive H, this drive is pretty much our standard user drive. If the user does not have a H drive some pretty neat code from https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/kOsN-QIOYEY displays a folder selection box (As annoyingly some users didn’t have their home drive set as H). Although I have set the filepath as LaptopBackup I have used it on Desktops as well.
The code deliberately terminates if it detects it isn’t on Windows 7, this is purely because I haven’t tested this in a network environment on other OS’s!
Known faults are pinned shortcuts in the taskbar don’t appear and printer settings don’t migrate (I never got around to correcting it).
This section of code is to backup to %backupdir%\LaptopBackup\
Echo Off rem Batch Script to Copy certain folders for the convenience of Users. The batch file backs up to the H drive, which is a standard drive for user folders. Tested on Windows 7 for standard Users. rem Changed backup folder location to something that is more suitable. Removed printer backup as it doesnt work and added Signature Backup 10/03/2015. rem Additional Credits https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/kOsN-QIOYEY for on the fly generation of VBS code REM Check Windows Version is 7 ver | findstr /i "6\.1\." > nul IF %ERRORLEVEL% EQU 0 goto sub_begincheck goto sub_wrongos :sub_begincheck rem If Homedrive is H begin copy if "%homedrive%"=="H:" goto sub_sethomedrive rem If Homedrive is not H: ask for new filepath ECHO Please select a location to backup the profile, it must be contained in a folder even if on an external drive due to a limiation in this script!!! PAUSE goto BrowseFolder :sub_sethomedrive rem Setup Backupdir variable to homedrive Set backupdir=%homedrive% :sub_begincopy rem Create Directory Structure ECHO Creating Directories mkdir "%backupdir%\LaptopBackup\" mkdir "%backupdir%\LaptopBackup\Desktop" mkdir "%backupdir%\LaptopBackup\Favorites" mkdir "%backupdir%\LaptopBackup\Recent" mkdir "%backupdir%\LaptopBackup\Documents" mkdir "%backupdir%\LaptopBackup\Downloads" mkdir "%backupdir%\LaptopBackup\Outlook" mkdir "%backupdir%\LaptopBackup\Outlook\Application Data" mkdir "%backupdir%\LaptopBackup\Links" mkdir "%backupdir%\LaptopBackup\Music" mkdir "%backupdir%\LaptopBackup\Pictures" mkdir "%backupdir%\LaptopBackup\Videos" mkdir "%backupdir%\LaptopBackup\Contacts" mkdir "%backupdir%\LaptopBackup\SyncToy" mkdir "%backupdir%\LaptopBackup\Sticky Notes" mkdir "%backupdir%\LaptopBackup\OfficeQuickAccess" mkdir "%backupdir%\LaptopBackup\ShortcutsPinned" rem Added Signatures mkdir "%backupdir%\LaptopBackup\Signatures" rem Change drive to C to action copy C: rem Use robocopy to copy specific folders and Echo Folder Copies, amended December 2013 so smaller files copied first and setup on new machine can be started earlier, amended March 2014 to include Quick Access and Pinned Shortcuts ECHO Copying Files and Folders from %LOCALAPPDATA%\Local\Microsoft\Office robocopy "%LOCALAPPDATA%\Microsoft\Office" "%backupdir%\LaptopBackup\OfficeQuickAccess" *.officeUI /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned robocopy "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned" "%backupdir%\LaptopBackup\ShortcutsPinned" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %LOCALAPPDATA%\microsoft\synctoy\2.0 robocopy "%LOCALAPPDATA%\microsoft\synctoy\2.0" "%backupdir%\LaptopBackup\SyncToy" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Application Data\Microsoft\Outlook robocopy "%AppData%\Microsoft\Outlook" "%backupdir%\LaptopBackup\Outlook\Application Data" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Links robocopy "%USERPROFILE%\Links" "%backupdir%\LaptopBackup\Links" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from "%AppData%\Microsoft\Sticky Notes" robocopy "%AppData%\Microsoft\Sticky Notes" "%backupdir%\LaptopBackup\Sticky Notes" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Favorites robocopy "%USERPROFILE%\Favorites" "%backupdir%\LaptopBackup\Favorites" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Recent robocopy "%USERPROFILE%\Recent" "%backupdir%\LaptopBackup\Recent" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %AppData%\Microsoft\Signatures robocopy "%AppData%\Microsoft\Signatures" "%backupdir%\LaptopBackup\Signatures" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Desktop robocopy "%USERPROFILE%\Desktop" "%backupdir%\LaptopBackup\Desktop" /E /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Documents robocopy "%USERPROFILE%\Documents" "%backupdir%\LaptopBackup\Documents" /E /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Downloads robocopy "%USERPROFILE%\Downloads" "%backupdir%\LaptopBackup\Downloads" /E /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Music robocopy "%USERPROFILE%\Music" "%backupdir%\LaptopBackup\Music" /E /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\Pictures robocopy "%USERPROFILE%\Pictures" "%backupdir%\LaptopBackup\Pictures" /E /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders from %USERPROFILE%\My Videos robocopy "%USERPROFILE%\Videos" "%backupdir%\LaptopBackup\Videos" /E /MT:6 /R:1 /V /W:1 ECHO Saving Printer Settings doesnt work commented out. rem "%windir%\System32\spool\tools\PrintBrm.exe" -B -F %backupdir%\LaptopBackup\Printers.cab rem Clear Screen to make it easier to view next message CLS rem Copy Complete Echo and Pause ECHO Backup copy now complete, please check and ensure your files have been copied in the folder %backupdir% PAUSE EXIT :BrowseFolder rem Set Temporary files rem Below is the Visual Basic Script, do not indent! set vbs=%temp%\_.vbs set tmp=%temp%\_.cmd > "%vbs%" echo set WshShell=WScript.CreateObject("WScript.Shell") >>"%vbs%" echo set shell = WScript.CreateObject("Shell.Application") >>"%vbs%" echo set folder=shell.BrowseForFolder(0,"Select Backup Location",0) >>"%vbs%" echo if typename(folder)="Nothing" Then >>"%vbs%" echo wscript.echo "set backupdir=Dialog Cancelled" >>"%vbs%" echo WScript.Quit(1) >>"%vbs%" echo end if >>"%vbs%" echo set folderItems=folder.Items() >>"%vbs%" echo set folderItem=folderItems.Item() >>"%vbs%" echo pathname=folderItem.Path >>"%vbs%" echo wscript.echo "set backupdir="^& chr(34) ^& pathname ^& chr(34) rem Run the script with WSH cscript //nologo "%vbs%" > "%tmp%" rem Read the output file and set Path as Env variable %backupdir% for /f "delims=" %%a in (%tmp%) do %%a rem Clear up DEL %VBS% DEL %TMP% rem Finished now go to copy goto :sub_begincopy :sub_wrongos rem Wrong Operating System Detected, echo and exit CLS ECHO This script is only supported on Windows 7. You are running rem Use ver command ver PAUSE EXIT :EOF rem End of File Catch for Errors ECHO End of file called! PAUSE EXIT
This section of code is to restore from %backupdir%\LaptopBackup\
Echo Off rem Batch Script to Copy certain folders for the convenience of Users. Tested on Windows 7 for standard Users. rem Removed printer restore as it doesnt work and added Signature Restore 10/03/2015. rem Additional Credits https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/kOsN-QIOYEY for on the fly generation of VBS code REM Check Windows Version is 7 ver | findstr /i "6\.1\." > nul IF %ERRORLEVEL% EQU 0 goto sub_begincheck goto sub_wrongos :sub_begincheck rem If Homedrive is H begin copy if "%homedrive%"=="H:" goto :sub_sethomedrive rem If Homedrive is not H: ask for new filepath ECHO Please select a location to backup the profile, it must be contained in a folder even if on an external drive due to a limiation in this script!!! PAUSE goto BrowseFolder :sub_sethomedrive rem Setup Backupdir variable to homedrive Set backupdir=%homedrive% :sub_begincopy rem Change drive to C to setup local folders C: rem Create Directory Structure mkdir "%AppData%\Microsoft" mkdir "%AppData%\Microsoft\Outlook" mkdir "%AppData%\Microsoft\Signatures" mkdir "%LOCALAPPDATA%\microsoft\synctoy" mkdir "%LOCALAPPDATA%\microsoft\synctoy\2.0" rem Added Sticky Notes 09/09/2013 mkdir "%AppData%\Microsoft\Sticky Notes" rem Added Quick Access and pinned Shortcuts 03/03/2014 mkdir "%LOCALAPPDATA%\Microsoft\Office" mkdir "%AppData%\Microsoft\Internet Explorer" mkdir "%AppData%\Microsoft\Internet Explorer\Quick Launch" rem Use robocopy to copy specific folders and Echo Folder Copies, changed copy order in December 2013 to help get smaller files required for user setup done first. Changed March 2013 to include Office Quick Access and Quick Launch ECHO Copying Files and Folders to %LOCALAPPDATA%\Local\Microsoft\Office robocopy "%backupdir%\LaptopBackup\OfficeQuickAccess" "%LOCALAPPDATA%\Microsoft\Office" *.officeUI /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders to %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned robocopy "%backupdir%\LaptopBackup\ShortcutsPinned" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders to %LOCALAPPDATA%\microsoft\synctoy\2.0 robocopy "%backupdir%\LaptopBackup\SyncToy" "%LOCALAPPDATA%\microsoft\synctoy\2.0" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Favorites robocopy "%backupdir%\LaptopBackup\Favorites" "%USERPROFILE%\Favorites" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Links robocopy "%backupdir%\LaptopBackup\Links" "%USERPROFILE%\Links" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Application Data\Microsoft\Outlook robocopy "%backupdir%\LaptopBackup\Outlook\Application Data" "%AppData%\Microsoft\Outlook" /E /MT:6 /R:2 /V /W:1 ECHO Copy Files and Folder to "%AppData%\Microsoft\Sticky Notes" robocopy "%backupdir%\LaptopBackup\Sticky Notes" "%AppData%\Microsoft\Sticky Notes" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders from %AppData%\Microsoft\Signatures robocopy "%backupdir%\LaptopBackup\Signatures" "%AppData%\Microsoft\Signatures" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Desktop robocopy "%backupdir%\LaptopBackup\Desktop" "%USERPROFILE%\Desktop" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %AppData%\Microsoft\Windows\Recent robocopy "%backupdir%\LaptopBackup\Recent" "%AppData%\Microsoft\Windows\Recent" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Documents robocopy "%backupdir%\LaptopBackup\Documents" "%USERPROFILE%\Documents" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Downloads robocopy "%backupdir%\LaptopBackup\Downloads" "%USERPROFILE%\Downloads" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\My Music robocopy "%backupdir%\LaptopBackup\Music" "%USERPROFILE%\Music" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Pictures robocopy "%backupdir%\LaptopBackup\Pictures" "%USERPROFILE%\Pictures" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Videos robocopy "%backupdir%\LaptopBackup\Videos" "%USERPROFILE%\Videos" /E /MT:6 /R:2 /V /W:1 REM Added Sticky Notes and Printer Restore rem ECHO Restoring Printer Settings, this may take a while! rem "%windir%\System32\spool\tools\PrintBrm.exe" -R -F %backupdir%\LaptopBackup\Printers.cab rem Clear Screen to make it easier to view next message CLS rem Copy Complete Echo and Pause ECHO Your files from your previous machine have now been restored. ECHO Please ensure you see all your files. PAUSE EXIT :BrowseFolder rem Set Temporary files rem Below is the Visual Basic Script, do not indent! set vbs=%temp%\_.vbs set tmp=%temp%\_.cmd > "%vbs%" echo set WshShell=WScript.CreateObject("WScript.Shell") >>"%vbs%" echo set shell = WScript.CreateObject("Shell.Application") >>"%vbs%" echo set folder=shell.BrowseForFolder(0,"Select Backup Location",0) >>"%vbs%" echo if typename(folder)="Nothing" Then >>"%vbs%" echo wscript.echo "set backupdir=Dialog Cancelled" >>"%vbs%" echo WScript.Quit(1) >>"%vbs%" echo end if >>"%vbs%" echo set folderItems=folder.Items() >>"%vbs%" echo set folderItem=folderItems.Item() >>"%vbs%" echo pathname=folderItem.Path >>"%vbs%" echo wscript.echo "set backupdir="^& chr(34) ^& pathname ^& chr(34) rem Run the script with WSH cscript //nologo "%vbs%" > "%tmp%" rem Read the output file and set Path as Env variable %backupdir% for /f "delims=" %%a in (%tmp%) do %%a rem Clear up DEL %VBS% DEL %TMP% rem Finished now go to copy goto :sub_begincopy :sub_wrongos rem Wrong Operating System Detected, echo and exit CLS ECHO This script is only supported on Windows 7. You are running ver PAUSE EXIT :EOF rem End of File Catch for Errors ECHO End of file called! PAUSE EXIT
Update August 2017. I have found Windows 10 Sticky Notes needs to be moved to a different location so data can be imported, the below has been added as where I work is currently planning to migrate from Windows 7 to Windows 10.
Further amendments may be needed and obviously the backup script above doesn’t account for the new data location for Sticky Notes.
Corrected restore location of restore script April 2018 (Whoops)
Echo Off rem Checked to work against Windows 10, stickynotes amended to account for changes rem Additional Credits https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/kOsN-QIOYEY for on the fly generation of VBS code REM Check Windows Version is 10 ver | findstr /i "10\.0\." > nul IF %ERRORLEVEL% EQU 0 goto sub_begincheck goto sub_wrongos :sub_begincheck rem If Homedrive is H begin copy if "%homedrive%"=="H:" goto :sub_sethomedrive rem If Homedrive is not H: ask for new filepath ECHO Please select a location to backup the profile, it must be contained in a folder even if on an external drive due to a limiation in this script!!! PAUSE goto BrowseFolder :sub_sethomedrive rem Setup Backupdir variable to homedrive Set backupdir=%homedrive% :sub_begincopy rem Change drive to C to setup local folders C: rem Create Directory Structure mkdir "%AppData%\Microsoft" mkdir "%AppData%\Microsoft\Outlook" mkdir "%AppData%\Microsoft\Signatures" mkdir "%LOCALAPPDATA%\microsoft\synctoy" mkdir "%LOCALAPPDATA%\microsoft\synctoy\2.0" rem Added Sticky Notes 09/09/2013 rem mkdir "%AppData%\Microsoft\Sticky Notes" rem http://www.winhelponline.com/blog/recover-backup-sticky-notes-data-file-windows-10/ mkdir "%LocalAppData%\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy" rem Added Quick Access and pinned Shortcuts 03/03/2014 mkdir "%LOCALAPPDATA%\Microsoft\Office" mkdir "%AppData%\Microsoft\Internet Explorer" mkdir "%AppData%\Microsoft\Internet Explorer\Quick Launch" rem Use robocopy to copy specific folders and Echo Folder Copies, changed copy order in December 2013 to help get smaller files required for user setup done first. Changed March 2013 to include Office Quick Access and Quick Launch ECHO Copying Files and Folders to %LOCALAPPDATA%\Local\Microsoft\Office robocopy "%backupdir%\LaptopBackup\OfficeQuickAccess" "%LOCALAPPDATA%\Microsoft\Office" *.officeUI /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders to %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned robocopy "%backupdir%\LaptopBackup\ShortcutsPinned" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders to %LOCALAPPDATA%\microsoft\synctoy\2.0 robocopy "%backupdir%\LaptopBackup\SyncToy" "%LOCALAPPDATA%\microsoft\synctoy\2.0" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Favorites robocopy "%backupdir%\LaptopBackup\Favorites" "%USERPROFILE%\Favorites" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Links robocopy "%backupdir%\LaptopBackup\Links" "%USERPROFILE%\Links" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Application Data\Microsoft\Outlook robocopy "%backupdir%\LaptopBackup\Outlook\Application Data" "%AppData%\Microsoft\Outlook" /E /MT:6 /R:2 /V /W:1 ECHO Copy Files and Folder to "%LocalAppData%\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy" rem Modified for Windows 10 where the folder has changed and the file must bhe imported via a Legavy Folder copy "%backupdir%\LaptopBackup\Sticky Notes\StickyNotes.snt" "%LocalAppData%\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy\ThresholdNotes.snt" /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders from %AppData%\Microsoft\Signatures robocopy "%backupdir%\LaptopBackup\Signatures" "%AppData%\Microsoft\Signatures" /S /MT:6 /R:1 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Desktop robocopy "%backupdir%\LaptopBackup\Desktop" "%USERPROFILE%\Desktop" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %AppData%\Microsoft\Windows\Recent robocopy "%backupdir%\LaptopBackup\Recent" "%AppData%\Microsoft\Windows\Recent" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Documents robocopy "%backupdir%\LaptopBackup\Documents" "%USERPROFILE%\Documents" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Downloads robocopy "%backupdir%\LaptopBackup\Downloads" "%USERPROFILE%\Downloads" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\My Music robocopy "%backupdir%\LaptopBackup\Music" "%USERPROFILE%\Music" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Pictures robocopy "%backupdir%\LaptopBackup\Pictures" "%USERPROFILE%\Pictures" /E /MT:6 /R:2 /V /W:1 ECHO Copying Files and Folders to %USERPROFILE%\Videos robocopy "%backupdir%\LaptopBackup\Videos" "%USERPROFILE%\Videos" /E /MT:6 /R:2 /V /W:1 REM Added Sticky Notes and Printer Restore rem ECHO Restoring Printer Settings, this may take a while! rem "%windir%\System32\spool\tools\PrintBrm.exe" -R -F %backupdir%\LaptopBackup\Printers.cab rem Clear Screen to make it easier to view next message CLS rem Copy Complete Echo and Pause ECHO Your files from your previous machine have now been restored. ECHO Please ensure you see all your files. PAUSE EXIT :BrowseFolder rem Set Temporary files rem Below is the Visual Basic Script, do not indent! set vbs=%temp%\_.vbs set tmp=%temp%\_.cmd > "%vbs%" echo set WshShell=WScript.CreateObject("WScript.Shell") >>"%vbs%" echo set shell = WScript.CreateObject("Shell.Application") >>"%vbs%" echo set folder=shell.BrowseForFolder(0,"Select Backup Location",0) >>"%vbs%" echo if typename(folder)="Nothing" Then >>"%vbs%" echo wscript.echo "set backupdir=Dialog Cancelled" >>"%vbs%" echo WScript.Quit(1) >>"%vbs%" echo end if >>"%vbs%" echo set folderItems=folder.Items() >>"%vbs%" echo set folderItem=folderItems.Item() >>"%vbs%" echo pathname=folderItem.Path >>"%vbs%" echo wscript.echo "set backupdir="^& chr(34) ^& pathname ^& chr(34) rem Run the script with WSH cscript //nologo "%vbs%" > "%tmp%" rem Read the output file and set Path as Env variable %backupdir% for /f "delims=" %%a in (%tmp%) do %%a rem Clear up DEL %VBS% DEL %TMP% rem Finished now go to copy goto :sub_begincopy :sub_wrongos rem Wrong Operating System Detected, echo and exit CLS ECHO This script is only supported on Windows 10. You are running ver PAUSE EXIT :EOF rem End of File Catch for Errors ECHO End of file called! PAUSE EXIT