LIXI.FUN - 重装 windows 之后的环境变量和个人配置
重装 Windows 安装了开发用的软件以后,需要添加环境变量,恢复自己常用的各项开发软件的插件,配置之类的,常规操作就是右键我的电脑 -> 属性 -> 高级设置 -> 环境变量
,一个一个去添加,软件的插件就是打开软件然后再一个一个安装,重复性操作总是让人不那么爽的,下面是我重装系统的一些 tips。
我的习惯是把开发用的软件都安装在一个目录,小的固态就是放 C:\develop
,如果大固态硬盘,D 盘
也是固态就放到 D:\develop
目录,下面以 D:\develop
的为例。
@REM 统一安装的目录
set BASE_DEVELOP_DIR=D:\develop
@REM USER_PATH
@REM 在 windows 上如果直接获取 %Path% 获取的是 系统环境变量 和 用户环境变量 的总和
@REM 在这里只需要 用户环境变量,避免在 setx Path 的时候系统环境变量被添加到用户环境变量中
for /f "usebackq tokens=2,*" %%A in (`reg query HKCU\Environment /v PATH`) do (set USER_PATH=%%B)
@REM --------------JAVA----------------
setx JAVA_HOME "%BASE_DEVELOP_DIR%\Java\jdk1.8.0_301"
setx CLASSPATH ".;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar"
@REM set 不带引号可以设置带空格的变量
set USER_PATH=%USER_PATH%;%%JAVA_HOME%%\bin
@REM setx 如果内容有空格需要用引号
setx PATH "%USER_PATH%"
@REM --------------MAVEN---------------
setx M2_HOME "%BASE_DEVELOP_DIR%\maven\apache-maven-3.6.3"
set USER_PATH=%USER_PATH%;%%M2_HOME%%\bin
setx PATH "%USER_PATH%"
@REM -------------LOCAL_NODE_MODULE----------------
setx LOCAL_NODE_MODULE ".\node_modules\.bin"
set USER_PATH=%USER_PATH%;%%LOCAL_NODE_MODULE%%
setx PATH "%USER_PATH%"
echo LOCAL_NODE_MODULE 配置成功
@REM -------------MYCMD----------------
@REM 这个是我自己常用的一些自定义命令,就放到这个目录下
setx MY_CMD "%BASE_DEVELOP_DIR%\mycmd"
set USER_PATH=%USER_PATH%;%%MY_CMD%%
setx PATH "%USER_PATH%"
pause
如果用户配置文件已经丢失了,那么还是需要自己一个一个去安装插件调整各种配置的。
如果本身有用户配置文件,那么可以在 Gitee 之类的网站新建一个私有仓库推送上去,再给 IDEA 添加配置同步即可,换电脑,重装系统只要重新添加同步配置即可。
IDEA 配置同步 : File -> Manage IDE Settings -> Setting Repository
添加建立的 Gitee 仓库即可。
例如用户目录下的 .m2
, .vscode
, pip
, .gitconfig
… 等配置文件,统一放到 D:
某目录下,使用 mklink
建立链接即可。
使用 mklink
的好处是,不需要更改软件的默认设置,新装软件无感即可恢复配置文件。
同时为了备份,还是建议这些文件放到统一目录使用 git 管理,上传到云端。
:: 将用户配置文件链接到用户目录下
:: mklink 命令不带参数的需要管理员权限
:: 开始获取管理员权限
setlocal
set uac=~uac_permission_tmp_%random%
md "%SystemRoot%\system32\%uac%" 2>nul
if %errorlevel%==0 ( rd "%SystemRoot%\system32\%uac%" >nul 2>nul ) else (
echo set uac = CreateObject^("Shell.Application"^)>"%temp%\%uac%.vbs"
echo uac.ShellExecute "%~s0","","","runas",1 >>"%temp%\%uac%.vbs"
echo WScript.Quit >>"%temp%\%uac%.vbs"
"%temp%\%uac%.vbs" /f
del /f /q "%temp%\%uac%.vbs" & exit )
endlocal
:: 完成获取
@echo off
@REM 设置 cmd 输出编码为 UTF8
chcp 65001
@REM 设定工作目录为脚本所在目录
cd /d %~dp0
@REM 脚本本身的名字
set _self=%~nx0
@REM 为文件夹建立链接
for /d %%f in (*) do (
mklink /J "%USERPROFILE%\%%f" "%~dp0%%f"
)
@REM 为文件建立链接,排除脚本自身
for %%f in (*) do (
if %_self% NEQ %%f (mklink "%USERPROFILE%\%%f" "%~dp0%%f")
)
echo 用户配置文件恢复成功
pause
在经过上面的 mklink
将 .vscode
链接过去以后,只有安装的插件,没有配置的信息,vscode 的 settings.json
位于 %APPDATA%\Code\User\
目录下,在将其备份以后 mklink
过去即可。
:: 开始获取管理员权限
setlocal
set uac=~uac_permission_tmp_%random%
md "%SystemRoot%\system32\%uac%" 2>nul
if %errorlevel%==0 ( rd "%SystemRoot%\system32\%uac%" >nul 2>nul ) else (
echo set uac = CreateObject^("Shell.Application"^)>"%temp%\%uac%.vbs"
echo uac.ShellExecute "%~s0","","","runas",1 >>"%temp%\%uac%.vbs"
echo WScript.Quit >>"%temp%\%uac%.vbs"
"%temp%\%uac%.vbs" /f
del /f /q "%temp%\%uac%.vbs" & exit )
endlocal
:: 完成获取
@echo off
@REM 设置 cmd 输出编码为 UTF8
chcp 65001
mklink "%APPDATA%\Code\User\settings.json" "%~dp0\settings.json"
pause
对于 微信,qq 的 Wechat Files
和 Tencent Files
同样使用 mklink
的方式即可。
:: 真实存放聊天记录位置
set BASE_DIR=D:\doc
set WX_FILES=Wechat Files
set QQ_FILES=Tencent Files
mklink /j "%USERPROFILE%\Documents\%WX_FILES%" "%BASE_DIR%\%WX_FILES%"
mklink /j "%USERPROFILE%\Documents\%QQ_FILES%" "%BASE_DIR%\%QQ_FILES%"
pause
.
├── ENV
│ ├── env-import.bat # 用于环境变量恢复的脚本
│ └── 环境变量备份.txt
├── LinuxConfig
│ ├── Docker
│ ├── LinuxService
│ └── Port
├── UserConfig
│ ├── .gitconfig
│ ├── .gitignore_global
│ ├── .ideavimrc
│ ├── .m2
│ ├── .ssh
│ ├── .viminfo
│ ├── .vscode
│ ├── _viminfo
│ ├── link-to-user-home.bat # 用于 mklink 的脚本
│ └── pip
└── XSoftConfig
├── frpc
├── sogou
├── vscode
└── wxqq
setx
恢复;mklink
链接到软件默认配置读取的目录下。