@echo off title Data Migration Tool - Compatibility Mode echo Starting Migration... :: --- 1. Set Variables --- set "USER_NAME=%USERNAME%" set "TARGET=D:\c_data" set "THREADS=%NUMBER_OF_PROCESSORS%" echo [INFO] Target: %TARGET% echo [INFO] User: %USER_NAME% echo [INFO] Threads: %THREADS% :: --- 2. Create Target Directories --- echo [LOG] Creating Directories... if not exist "%TARGET%" mkdir "%TARGET%" mkdir "%TARGET%\Desktop" mkdir "%TARGET%\Documents" mkdir "%TARGET%\Downloads" mkdir "%TARGET%\Pictures" mkdir "%TARGET%\.cargo" mkdir "%TARGET%\.go_path" mkdir "%TARGET%\.npm_global" mkdir "%TARGET%\.jetbrains_cache" mkdir "%TARGET%\.claude" mkdir "%TARGET%\.vscode_ext" :: --- 3. Move Data (System Folders) --- echo [LOG] Moving System Folders... robocopy "C:\Users\%USER_NAME%\Desktop" "%TARGET%\Desktop" /E /MOVE /R:0 /W:0 /MT:%THREADS% robocopy "C:\Users\%USER_NAME%\Documents" "%TARGET%\Documents" /E /MOVE /R:0 /W:0 /MT:%THREADS% robocopy "C:\Users\%USER_NAME%\Downloads" "%TARGET%\Downloads" /E /MOVE /R:0 /W:0 /MT:%THREADS% robocopy "C:\Users\%USER_NAME%\Pictures" "%TARGET%\Pictures" /E /MOVE /R:0 /W:0 /MT:%THREADS% :: --- 4. Registry Update --- echo [LOG] Updating Registry... reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Desktop" /t REG_EXPAND_SZ /d "%TARGET%\Desktop" /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal" /t REG_EXPAND_SZ /d "%TARGET%\Documents" /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "{374DE290-123F-4565-9164-39C4925E467B}" /t REG_EXPAND_SZ /d "%TARGET%\Downloads" /f :: --- 5. Dev Environment Junctions --- echo [LOG] Creating Junctions... :: Cargo if exist "C:\Users\%USER_NAME%\.cargo" ( robocopy "C:\Users\%USER_NAME%\.cargo" "%TARGET%\.cargo" /E /MOVE /R:0 /W:0 /MT:%THREADS% rd /s /q "C:\Users\%USER_NAME%\.cargo" ) mklink /j "C:\Users\%USER_NAME%\.cargo" "%TARGET%\.cargo" :: Go if exist "C:\Users\%USER_NAME%\go" ( robocopy "C:\Users\%USER_NAME%\go" "%TARGET%\.go_path" /E /MOVE /R:0 /W:0 /MT:%THREADS% rd /s /q "C:\Users\%USER_NAME%\go" ) mklink /j "C:\Users\%USER_NAME%\go" "%TARGET%\.go_path" :: NPM if not exist "C:\Users\%USER_NAME%\AppData\Roaming\npm" mkdir "C:\Users\%USER_NAME%\AppData\Roaming\npm" mklink /j "C:\Users\%USER_NAME%\AppData\Roaming\npm_new" "%TARGET%\.npm_global" :: JetBrains if exist "C:\Users\%USER_NAME%\AppData\Local\JetBrains" ( robocopy "C:\Users\%USER_NAME%\AppData\Local\JetBrains" "%TARGET%\.jetbrains_cache" /E /MOVE /R:0 /W:0 /MT:%THREADS% rd /s /q "C:\Users\%USER_NAME%\AppData\Local\JetBrains" ) mklink /j "C:\Users\%USER_NAME%\AppData\Local\JetBrains" "%TARGET%\.jetbrains_cache" echo. echo ======================================================== echo [DONE] Migration Complete! echo Please REBOOT your computer. echo ======================================================== pause