Initial Upload

This commit is contained in:
2023-11-24 02:26:42 -06:00
parent 7e8c812cbf
commit e274be7c70

257
Profile_Migration-1.0.3.bat Normal file
View File

@@ -0,0 +1,257 @@
::----------------------------------------------------------------------------
:: Version 1.0.3
:: Created by Jacob Kofal
:: https://kofal.net
::----------------------------------------------------------------------------
:: ChangeLog
::-------------
::
:: |1.0.3
:: |fixed 'from' variable in source computer section
:: |1.0.2
:: |Added notice at beginning to share old computer C: drive as MPC
:: |1.0.1
:: |Changed UserCheck to work with usernames that have spaces in the name
:: |Enabled DelayedExpansion to resolve asking for usernames twice
:: |1.0
:: |Initial release, refactored code
::
::----------------------------------------------------------------------------
@echo off
::-----------------
:: Variables
::-----------------
set version=1.0.3
set share=MPC
::-----------------
:: End Variables
::-----------------
::Prep
goto :setdate
::endprep
::---------------------
:: Begin Questions
::---------------------
echo. Please share the C: Drive of the old computer as 'MPC'
echo. Press any key when done.
echo.
pause > NUL
::----------------------
:: Username Selection
::----------------------
:start
set /p login= Are you logged in as the user?(Y/N):
if %login% EQU y (
set fromprofile=%username%
cls & goto :choice1
)
:nouser
set /p user= What is the username on the old computer?:
set /p user1= Is %user% correct?(Y/N):
if %user1% EQU y (
set fromprofile=%user%
cls & goto :choice1
)
cls & echo. Please try again. & ping -n 2 127.0.0.1> NUL & goto :nouser
::---------------------
:: Network / Local
::---------------------
:choice1
echo. How will you be copying the data?
echo.
echo. please choose:
echo. 1.Over the Network
echo. 2.Local Connection
set /p copymode= Selection:
if %copymode% EQU 1 cls & goto :network
if %copymode% EQU 2 cls & goto :local
cls & echo. Incorrect selection, please retry. & ping -n 2 127.0.0.1> NUL & goto :choice1
::---------------------
:: Network Questions
::---------------------
:network
echo. Are you running this on source machine or destination machine?
echo. 1.Running on destination machine
echo. 2.Running on source machine
set /p dest= Selection:
if %dest% EQU 1 cls & goto :destination
if %dest% EQU 2 cls & goto :source
cls & echo. Incorrect selection, please retry. & ping -n 2 127.0.0.1> NUL & goto :network
::running on destination computer
:destination
set to=C:\
ping -n 2 127.0.0.1 > NUL
set /p copyfrom= What is the IP Address of the source machine? (e.g.: ^'192.168.1.1^') :
set from=\\%copyfrom%\%share%\
if %copyfrom% EQU 127.0.0.1 cls & echo. You cannot choose %copyfrom% & ping -n 2 127.0.0.1> NUL & goto :destination
if %copyfrom% EQU localhost cls & echo. You cannot choose %copyfrom% & ping -n 2 127.0.0.1> NUL & goto :destination
if exist %from% cls & goto :usercheck
cls & goto :destination
)
::running on source computer
:source
set from=C:\
ping -n 2 127.0.0.1 > NUL
cls
set /p copyto= What is the IP Address of the destination machine? (e.g.: ^'192.168.1.1^') :
set to=\\%copyto%\%share%\
if %copyto% EQU 127.0.0.1 cls & echo. You cannot choose %copyto% & ping -n 2 127.0.0.1> NUL & goto :source
if %copyto% EQU localhost cls & echo. You cannot choose %copyto% & ping -n 2 127.0.0.1> NUL & goto :source
if exist %to% cls & goto :usercheck
cls & echo. Please try again. && ping -n 2 127.0.0.1> NUL & goto :source
)
::---------------------
:: Local Questions
::---------------------
:local
echo. Will you be copying from or to an external drive?
echo. 1.Copy from C: to external drive
echo. 2.Copy from external to C: drive
set /p dest= Selection:
if %dest% EQU 1 cls & goto :external
if %dest% EQU 2 cls & goto :internal
cls & echo. Please try again. && ping -n 2 127.0.0.1> NUL & goto :local
::copying to external media
:external
set from=C:\
set /p copyto= What is the drive letter of the external drive? (e.g.: ^'D^') :
if %copyto% EQU C cls & echo. You cannot chose C. & goto :external
set to=%copyto%:\
if exist %to% cls
mkdir %to%users\%fromprofile%\Documents > NUL 2>&1
goto :usercheck
cls & echo. Incorrect drive letter, please retry. & goto :external
::copying from external media
:internal
set to=C:\
set /p copyfrom= What is the drive letter of the external drive? (e.g.: ^'D^') :
set from=%copyfrom%:\
if exist %from% cls & goto :usercheck
cls & echo. Incorrect drive letter, please retry. & goto :internal
::-----------------
:: User Check
::-----------------
::check to make sure username folders exist on both source and destination devices before copying
:usercheck
setlocal enabledelayedexpansion
set fromcheck=%from%users\%fromprofile%
set tocheck=%to%users\%fromprofile%
set toprofile=%fromprofile%
:usercheck1
if exist "%fromcheck%" (
if exist "%tocheck%" (
cls & goto :copyprep
) else (
echo. Username does not exist on destination device.
set /p toprofile= Enter username on destination device:
set tocheck=%to%users\!toprofile!
cls & goto :usercheck1
)
cls & goto :copyprep
) else (
echo. Username does not exist on source device.
set /p fromprofile= Enter username on source device:
set fromcheck=%from%users\!fromprofile!
cls & goto :usercheck1
)
::-----------------
:: Copy Prep
::-----------------
:copyprep
setlocal disabledelayedexpansion
set from=%from%users\%fromprofile%\
set to=%to%users\%toprofile%\
if exist "%to%Documents\Profile-Migration-%version%_%_isodate%.log" del "%to%Documents\Profile-Migration-%version%_%_isodate%.log"
::-----------------
:: Copy Files
::-----------------
::Copy Chrome Bookmarks
robocopy "%from%AppData\Local\Google\Chrome\User Data\Default" "%to%AppData\Local\Google\Chrome\User Data\Default" "Bookmarks.*" /R:1 /W:1 /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
::Copy Chrome Saved Passwords
robocopy "%from%AppData\Local\Google\Chrome\User Data\Default" "%to%AppData\Local\Google\Chrome\User Data\Default" "Login Data" /R:1 /W:1 /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
::Copy Outlook Signatures
robocopy "%from%AppData\Roaming\Microsoft\Signatures" "%to%AppData\Roaming\Microsoft\Signatures" /E /R:1 /W:1 /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
::Copy Sticky Notes from Win10 to Win10
robocopy "%from%AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState" "%to%AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState" plum.sqlite-wal /R:1 /W:1 /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
::Copy Sticky Notes from Win7 to Win10
mkdir "%to%AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy"
robocopy "%from%AppData\Roaming\Microsoft\Sticky Notes" "%to%AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy" StickyNotes.snt /R:1 /W:1 /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
ren "%to%AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy\StickyNotes.snt" "%to%AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy\ThresholdNotes.snt"
::Copy PSTs in the Outlook AppData folder
robocopy "%from%AppData\Roaming\Microsoft\Outlook" "%to%AppData\Roaming\Microsoft\Outlook" *.pst /E /R:1 /W:1 /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
::Copy User Folders
for %%G in (Desktop,Documents,Downloads,Favorites,Links,Music,Pictures,Videos) do robocopy "%from%%%G" "%to%%%G" /E /R:1 /W:1 /XJD /LOG+:%to%Documents\Profile-Migration-%version%_%_isodate%.log /TEE
::-----------------
:: End Script
::-----------------
echo.
echo.Script Finished. Press Any Key to Continue...
pause
goto :EOF && exit /b 0
:setdate
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Month^,Year /Format:table') DO (
IF "%%~I"=="" goto s_done
Set _yyyy=%%I
Set _mm=00%%H
Set _dd=00%%G
)
:s_done
:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
:: Display the date in ISO 8601 format:
Set _isodate=%_yyyy%-%_mm%-%_dd%
goto :start
exit