重装 windows 之后的环境变量和个人配置

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

用户软件配置

Jetbrains IDE

如果用户配置文件已经丢失了,那么还是需要自己一个一个去安装插件调整各种配置的。

如果本身有用户配置文件,那么可以在 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

vscode

在经过上面的 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

对于 微信,qq 的 Wechat FilesTencent 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 恢复;
  • git 管理,恢复时使用 mklink 链接到软件默认配置读取的目录下。

你可能感兴趣的:(windows,自动化)