VsCode 一些设置

vscode 目录设置

迁移下vscode的userdata数据与extension数据

migrate_vscode.ps1
# ==============================
# VS Code 缓存迁移 + Java/LaTeX 输出路径 + 快捷方式修改
# ==============================

# 1. 关闭 VS Code
Write-Host "正在关闭 VS Code..."
taskkill /F /IM Code.exe 2>$null

# 2. 设定新目录(可修改)
$VSCODE_DATA_DIR  = "D:\Application\Microsoft VS Code\VSCodeUserData"
$VSCODE_EXT_DIR   = "D:\Application\Microsoft VS Code\VSCodeExtensions"

# 3. 创建目录(如果不存在)
New-Item -ItemType Directory -Force -Path $VSCODE_DATA_DIR  | Out-Null
New-Item -ItemType Directory -Force -Path $VSCODE_EXT_DIR   | Out-Null

# 4. 迁移 VS Code 用户数据(用 Remove-Item 代替 rmdir /S /Q)
$oldDataDir = "$env:APPDATA\Code"
if (Test-Path $oldDataDir) {
    Write-Host "迁移 VS Code 用户数据到 $VSCODE_DATA_DIR"
    robocopy $oldDataDir $VSCODE_DATA_DIR /MIR
    Remove-Item -Path $oldDataDir -Recurse -Force
    cmd /c mklink /J $oldDataDir $VSCODE_DATA_DIR
}

# 5. 迁移 VS Code 扩展目录
$oldExtDir = "$env:USERPROFILE\.vscode\extensions"
if (Test-Path $oldExtDir) {
    Write-Host "迁移 VS Code 扩展到 $VSCODE_EXT_DIR"
    robocopy $oldExtDir $VSCODE_EXT_DIR /MIR
    Remove-Item -Path $oldExtDir -Recurse -Force
    cmd /c mklink /J $oldExtDir $VSCODE_EXT_DIR
}


# 6. 修改 VS Code 快捷方式
Write-Host "正在修改 VS Code 快捷方式..."
$shortcutPaths = @(
    "$env:USERPROFILE\Desktop\Visual Studio Code.lnk",
    "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Visual Studio Code.lnk"
)

$codeExePath = "C:\Users\$env:USERNAME\AppData\Local\Programs\Microsoft VS Code\Code.exe"
$shortcutArgs = "--user-data-dir `"$VSCODE_DATA_DIR`" --extensions-dir `"$VSCODE_EXT_DIR`""

$wsh = New-Object -ComObject WScript.Shell

foreach ($scPath in $shortcutPaths) {
    if (Test-Path $scPath) {
        $shortcut = $wsh.CreateShortcut($scPath)
        $shortcut.TargetPath = $codeExePath
        $shortcut.Arguments = $shortcutArgs
        $shortcut.Save()
        Write-Host "已修改快捷方式: $scPath"
    }
}

Write-Host "✅ 所有配置完成:"
Write-Host "  - VS Code 用户数据: $VSCODE_DATA_DIR"
Write-Host "  - VS Code 插件: $VSCODE_EXT_DIR"
Write-Host "以后直接双击 VS Code 图标即可用 D 盘运行"

中间的4 5需要管理员权限,可复制出来单独运行

测试的脚本
# 1. 检查用户数据目录是否为软链接
Get-Item "$env:APPDATA\Code" | Format-List Mode,LinkType,Target,Name

# 2. 检查扩展目录是否为软链接
Get-Item "$env:USERPROFILE\.vscode\extensions" | Format-List Mode,LinkType,Target,Name

# 3. 查看 VS Code 启动参数(通过任务管理器查看,也可以用下面命令)
# PS 没法直接查进程参数,建议手动打开任务管理器查看 Code.exe 命令行

# 4. 查看 C 盘用户数据目录是否为空(或变成软链接)
Get-ChildItem "$env:APPDATA\Code"

posted @ 2025-08-10 23:48  tokirin994  阅读(10)  评论(0)    收藏  举报