为了避免系统重装及vscode重装配置丢失,研究了一个手工绿色版的办法:
1.从官方下载.zip(记得非安装版),然后解压到非系统盘中(例如:d:\vscode),运行并配置好各方面;
2.把C:\Users\用户名\.vscode\文件夹中的extensions文件夹直接复制到序号1中vscode文件夹(例如:d:\vscode)中;
3.创建code.exe快捷方式,右键快捷方式,在目标中的code.exe后加【 --extensions-dir "d:\vscode\extensions"】(注【】中有空格),此方案是解决扩展插件的位置,免得重装时要重复装一堆东西。
4.在序号1的文件夹中(例如:d:\vscode)创建一个文件夹名为:VSCode备份器,从http://t.csdn.cn/YfzQ2http://t.csdn.cn/YfzQ2
下载”备份器“引用该朋友的内容,结合我自己的情况,改良了”请运行我.bat“,内容如下:
@echo off
@chcp 936
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
setlocal enabledelayedexpansion
set si=%date:~0,10%
set FILE_de_NAME=%si:/=-%
rem 配置压缩文件路径,z_type为备份/还原引擎,为rar时调用本机的rar默认安装路径,为zip时用原作者的zip。
set zippath=%~dp0zip.exe
set unzippath=%~dp0unzip.exe
set rarpath=%ProgramFiles%\winrar\rar.exe
set z_type="rar"
rem 源代码.vscode文件夹中的所有配置备份
set codevscode=D:\CODE\VSCode
title "Visual Studio Code备份工具"
if z_type=="zip" if not exist zip.exe (
echo 未找到 zip.exe,无法备份
goto END
)
if z_type=="zip" if not exist unzip.exe (
echo 未找到 unzip.exe,无法恢复
goto END
)
if z_type=="rar" if not exist "%rarpath%" (
echo 未找到 rar.exe,无法备份/恢复
goto END
)
echo 本次备份/还原用的压缩/解压软件引擎为:%z_type%
echo 敬告:请确保您已安装Visual Studio Code并至少运行过一次
set /p selc=请选择操作类型(备份请输入b,还原请输入r,退出请输入其他字符):
if /I "%selc%"=="b" goto b
if /I "%selc%"=="r" goto r
echo 感谢您的使用,再见!
goto END
:b
set /p solo=请选择备份类型(拓展请输入e,用户设置请输入u,代码.vscode请输入c,退出请输入x,三者都备份请输入其他字符):
echo 备份会生成zip文件于当前目录,占用大约几十到几百MiB,请确保您的空间足够。
pause
if /I "%solo%"=="e" goto e
if /I "%solo%"=="u" goto u
if /I "%solo%"=="c" goto code
if /I "%solo%"=="x" goto END
:e
echo 正在备份拓展...
cd /d "%userprofile%\.vscode"
if %z_type%=="zip" ("%zippath%" -r9 "%~dp0vscode_%FILE_de_NAME%_ext.zip" *
)else if %z_type%=="rar" ("%rarpath%" a -r -m4 "%~dp0vscode_%FILE_de_NAME%_ext.zip" *
)
if exist "%~dp0vscode_%FILE_de_NAME%_ext.zip" (echo 成功备份拓展到vscode_%FILE_de_NAME%_ext.zip) else (echo Error:备份用户设置失败。)
if /I "%solo%"=="e" goto ed
:u
echo 正在备份用户设置...
cd /d "%appdata%\Code\User"
if %z_type%=="zip" ("%zippath%" -r9 "%~dp0vscode_%FILE_de_NAME%_settings.zip" *
)else if %z_type%=="rar" ("%rarpath%" a -r -m4 "%~dp0vscode_%FILE_de_NAME%_settings.zip" *
)
if exist "%~dp0vscode_%FILE_de_NAME%_settings.zip" (echo 成功备份代码.vscode到vscode_%FILE_de_NAME%_settings.zip) else (echo Error:备份用户设置失败。)
if /I "%solo%"=="u" goto ed
:code
echo 正在备份代码.vscode设置...
cd /d "%codevscode%"
if %z_type%=="zip" ("%zippath%" -r9 "%~dp0vscode_%FILE_de_NAME%_code_vscode.zip" *.json
)else if %z_type%=="rar" ("%rarpath%" a -r -m4 "%~dp0vscode_%FILE_de_NAME%_code_vscode.zip" *.json
)
if exist "%~dp0vscode_%FILE_de_NAME%_code_vscode.zip" (echo 成功备份代码.vscode到vscode_%FILE_de_NAME%_code_vscode.zip) else (echo Error:备份代码.vscode失败。)
if /I "%solo%"=="c" goto ed
:ed
echo.
echo 备份操作已完成,请查看是否有错误,如无,请妥善保存zip文件。
goto END
:r
echo 请将以_ext、_settings、_code_vscode结尾的zip文件放入本脚本的同级目录下。
echo 如果不想还原拓展设置,请不要对前者执行上述操作!
echo 如果不想还原用户设置,请不要对后者执行上述操作!
echo 如果不想还原代码.vscode设置,请不要对后者执行上述操作!
echo 以上操作完成后,请按任意键继续,按Ctrl+C中断放弃。
pause >nul
if exist %~dp0*_ext.zip (
echo 正在还原拓展...
cd /d "%userprofile%"
if %z_type%=="zip" ("%unzippath%" -o "%~dp0*_ext.zip" -d .vscode
)else if %z_type%=="rar" ("%rarpath%" x "%~dp0*_ext.zip" .vscode
)
if ERRORLEVEL 0 echo 成功还原拓展...
)
if exist %~dp0*_settings.zip (
echo 正在还原用户设置...
cd /d "%appdata%\Code"
if %z_type%=="zip" ("%unzippath%" -o "%~dp0*_settings.zip" -d User
)else if %z_type%=="rar" ("%rarpath%" x "%~dp0*_settings.zip" User
)
if ERRORLEVEL 0 echo 成功还原用户设置...
)
if exist %~dp0*_code_vscode.zip (
echo 正在还原代码.vscode设置...
cd /d "%codevscode%"
if %z_type%=="zip" ("%unzippath%" -o "%~dp0*_code_vscode.zip" -d .\
)else if %z_type%=="rar" ("%rarpath%" x "%~dp0*_code_vscode.zip" .\
)
if ERRORLEVEL 0 echo 成功还原代码.vscode设置...
)
echo.
echo 还原操作已完成,请查看是否有错误。
goto END
:END
cd /d "%rundir%"
echo.
echo 按任意键退出...
pause>nul
exit
主要改良的是,备份器放在任意文件夹中时,还可以备份到vscode(第一次运行vscode并配置好了后才运行该bat),以后重装系统(软件时),再运行一次bat选择还原即可,后面发现原作者备份器中的zip.exe不大适合我,我做了保留,并增加了rar,具体路径请自行修改,如果要用原作者的zip,把set z_type="rar"改为set z_type="zip"即可。
5.以后如果有改动vscode配置,只需再备份一次即可。