背景痛点
电脑安装了自动还原精灵,每次重启 C 盘都会恢复初始状态。按照官方文档安装 Qwen Code 后,发现:
- Node.js 和 npm 默认装到 C 盘,重启后消失
- Qwen Code 登录凭证保存在
C:\Users\Administrator\.qwen,重启后需重新认证 - 环境变量配置在 C 盘,重启后失效
本文提供全盘 D 盘化方案,确保重启后无需任何重新配置,双击即用。
前置要求
- Windows 10/11 系统
- D 盘(或 E 盘)有 2GB 以上空间
- 已购买阿里百炼 Coding Plan(含 API Key:
sk-sp-xxxxx) - 能使用 PowerShell(右键开始菜单 → Windows PowerShell)
避坑总览(必读)
| 坑点 | 现象 | 本文解决方案 |
|---|---|---|
| SSL 下载失败 | curl: (35) schannel: failed to receive handshake |
改用 Invoke-WebRequest 下载 Node.js |
| 目录创建语法错误 | New-Item : 找不到接受实际参数的位置形式参数 |
使用 $dirs 数组 + foreach 循环 |
| 批处理中文乱码 | 此应用无法在你的电脑运行 |
使用 cmd /c "more > file.bat" 生成 ANSI 编码文件 |
| 配置保存到 C 盘 | 重启后要求重新 /auth |
迁移配置到 D 盘 + Junction 软链接 |
| 环境变量被忽略 | 设置 QWEN_CONFIG_DIR 无效 |
使用 mklink /J 创建目录联接 |
| 权限拒绝 | 拒绝访问 警告 |
脚本中 suppress 错误输出,确保 Junction 创建 |
步骤一:创建目录结构(修正版)
坑点提醒:直接复制多路径会报错,必须使用数组循环。
打开 PowerShell,执行:
powershell
# 创建所有必要目录(修正语法错误)
$dirs = @("D:\dev", "D:\dev\nodejs", "D:\dev\npm-global", "D:\dev\npm-cache", "D:\dev\qwen-config", "D:\dev\temp_nodejs")
foreach ($dir in $dirs) {
New-Item -ItemType Directory -Force -Path $dir | Out-Null
}
Write-Host "Directories created" -ForegroundColor Green
步骤二:下载 Node.js(避开 SSL 错误)
坑点提醒 :Windows 自带 curl 有 SSL 握手问题,必须使用 Invoke-WebRequest。
powershell
# 使用 PowerShell 下载(避免 curl SSL 错误)
Invoke-WebRequest -Uri "https://nodejs.org/dist/v20.18.1/node-v20.18.1-win-x64.zip" -OutFile "D:\dev\nodejs.zip" -UseBasicParsing
Write-Host "Download completed" -ForegroundColor Green
步骤三:解压并配置 Node.js
powershell
# 解压 Node.js(自动处理嵌套文件夹)
Expand-Archive -Path "D:\dev\nodejs.zip" -DestinationPath "D:\dev\temp_nodejs" -Force
Move-Item -Path "D:\dev\temp_nodejs\node-v20.18.1-win-x64\*" -Destination "D:\dev\nodejs\" -Force
Remove-Item -Path "D:\dev\temp_nodejs" -Recurse -Force
Write-Host "Node.js extracted" -ForegroundColor Green
# 验证 Node.js
Write-Host "Node.js version: " -NoNewline
& "D:\dev\nodejs\node.exe" -v
# 配置 npm 路径到 D 盘(关键!防止装到 C 盘)
& "D:\dev\nodejs\npm.cmd" config set prefix "D:\dev\npm-global"
& "D:\dev\nodejs\npm.cmd" config set cache "D:\dev\npm-cache"
& "D:\dev\nodejs\npm.cmd" config set registry "https://registry.npmmirror.com"
Write-Host "npm paths configured to D drive" -ForegroundColor Green
步骤四:安装 Qwen Code
powershell
Write-Host "Installing Qwen Code (1-3 minutes)..." -ForegroundColor Yellow
& "D:\dev\nodejs\npm.cmd" install -g @qwen-code/qwen-code@latest
Write-Host "Qwen Code installed" -ForegroundColor Green
步骤五:创建启动脚本(防编码错误)
坑点提醒 :使用 Out-File 生成的批处理中文系统可能无法运行,必须使用 cmd /c "more >" 确保 ANSI 编码。
创建首次配置脚本(first-setup.bat):
powershell
$firstSetup = @'
@echo off
title Qwen Code First Setup
cd /d D:\dev
set PATH=D:\dev\nodejs;D:\dev\npm-global;%PATH%
set QWEN_CONFIG_DIR=D:\dev\qwen-config
set QWEN_SOURCE=bailian
echo.
echo ===========================================
echo Qwen Code First Setup Wizard
echo ===========================================
echo.
echo Steps:
echo 1. Type: /auth
echo 2. Select: Api-Key
echo 3. Select: coding-plan
echo 4. Enter your sk-sp-xxxxx API Key
echo.
pause
qwen.cmd
echo.
echo Setup complete! Auth saved to D:\dev\qwen-config
pause
'@
$firstSetup | cmd /c "more > D:\dev\first-setup.bat"
创建日常使用脚本(start-qwen.bat)------这是关键,防还原核心:
powershell
$startScript = @'
@echo off
title Qwen Code Portable
:: Switch to D drive
D:
cd \dev
:: Set PATH
set PATH=D:\dev\nodejs;D:\dev\npm-global;%PATH%
set NODE_HOME=D:\dev\nodejs
:: CRITICAL: Create Junction to trick Qwen Code into reading D drive config
:: Remove C drive .qwen if exists (might be empty after restore)
if exist "C:\Users\Administrator\.qwen" (
rmdir /s /q "C:\Users\Administrator\.qwen" >nul 2>&1
)
:: Create Junction (soft link) from C:\Users\Administrator\.qwen to D:\dev\qwen-config
mklink /J "C:\Users\Administrator\.qwen" "D:\dev\qwen-config" >nul 2>&1
if not exist "C:\Users\Administrator\.qwen\settings.json" (
echo ERROR: Config link failed or not initialized!
echo Please run first-setup.bat first to complete initial auth.
pause
exit /b 1
)
:: Launch Qwen Code (it reads C:\Users\Administrator\.qwen which points to D drive)
qwen.cmd %*
'@
$startScript | cmd /c "more > D:\dev\start-qwen.bat"
原理说明:
- Qwen Code 强制读取
C:\Users\Administrator\.qwen(无法通过环境变量改变) - 我们创建 Junction(目录联接),让 C 盘路径指向 D 盘实际数据
- 即使 C 盘还原,每次启动脚本都会重新建立 Junction
步骤六:首次配置(关键步骤)
- 双击运行
D:\dev\first-setup.bat - 在打开的窗口中输入:
/auth - 选择:
Api-Key - 选择:
coding-plan - 输入你的 API Key(格式:
sk-sp-xxxxx) - 看到
成功通过 阿里云百炼 Coding Plan 认证即表示成功
坑点提醒 :此时配置会默认保存到 C:\Users\Administrator\.qwen\settings.json,我们需要迁移到 D 盘。
步骤七:迁移配置到 D 盘(防还原关键)
执行以下 PowerShell 命令,将配置从 C 盘迁移到 D 盘:
powershell
# 迁移配置到 D 盘(防 C 盘还原)
$sourceDir = "C:\Users\Administrator\.qwen"
$targetDir = "D:\dev\qwen-config"
if (Test-Path $sourceDir) {
Write-Host "Migrating config from C to D drive..." -ForegroundColor Yellow
# 复制所有配置文件
Copy-Item -Path "$sourceDir\*" -Destination $targetDir -Recurse -Force
Write-Host "Migration complete!" -ForegroundColor Green
# 可选:备份原始目录(如无法删除)
Rename-Item -Path $sourceDir -NewName ".qwen.backup" -Force -ErrorAction SilentlyContinue
Write-Host "Original config backed up to .qwen.backup" -ForegroundColor Gray
} else {
Write-Host "Source not found, checking D drive..." -ForegroundColor Yellow
}
# 验证迁移结果
if (Test-Path "D:\dev\qwen-config\settings.json") {
Write-Host "SUCCESS: Config is now on D drive!" -ForegroundColor Green
Get-Content "D:\dev\qwen-config\settings.json" | Select-Object -First 5
} else {
Write-Host "ERROR: Migration failed!" -ForegroundColor Red
}
步骤八:验证测试(模拟重启)
创建测试脚本验证 C 盘还原后是否能正常工作:
powershell
$testScript = @'
@echo off
title Restart Simulation Test
echo === Simulating C Drive Reset ===
echo.
:: Step 1: Clear environment (simulating restart)
set PATH=C:\Windows\system32;C:\Windows
set QWEN_CONFIG_DIR=
set NODE_HOME=
echo [OK] Environment cleaned (like after restart)
echo.
:: Step 2: Start from D drive (this will recreate Junction)
echo [TEST] Starting Qwen Code from D drive...
call D:\dev\start-qwen.bat --version
if %ERRORLEVEL% == 0 (
echo.
echo === TEST PASSED ===
echo Qwen Code works after restart!
echo Config is safe on D drive.
) else (
echo.
echo === TEST FAILED ===
)
pause
'@
$testScript | cmd /c "more > D:\dev\test-restart.bat"
双击运行 D:\dev\test-restart.bat,如果显示版本号或成功启动,表示测试通过。
步骤九:日常使用流程
重启电脑后,只需要一步:
- 双击
D:\dev\start-qwen.bat - 自动重建 Junction 链接,读取 D 盘配置
- 直接进入 Qwen Code,显示
Coding Plan | qwen3.5-plus - 无需重新认证!
文件位置速查表
| 项目 | 路径 | 说明 |
|---|---|---|
| Node.js | D:\dev\nodejs\ |
绿色版,不受还原影响 |
| npm 全局包 | D:\dev\npm-global\ |
Qwen Code 安装位置 |
| 配置文件 | D:\dev\qwen-config\settings.json |
API Key 存储位置 |
| 启动脚本 | D:\dev\start-qwen.bat |
日常使用入口 |
| Junction 点 | C:\Users\Administrator\.qwen → D:\dev\qwen-config |
自动重建的软链接 |
常见问题 FAQ
Q: 为什么不用 QWEN_CONFIG_DIR 环境变量?
A: 实测 Qwen Code 会忽略此变量,强制读取用户目录下的 .qwen 文件夹。使用 Junction 是最可靠的方案。
Q: 提示 "拒绝访问" 怎么办?
A: 这是尝试删除旧文件夹时的权限提示,不影响功能。如想消除,确保以管理员身份运行一次 start-qwen.bat。
Q: D 盘空间不足,能否移到 E 盘?
A: 可以。将 D:\dev 改为 E:\dev,同时修改 start-qwen.bat 中的所有路径即可。
Q: 如何备份我的登录状态?
A: 备份 D:\dev\qwen-config\settings.json 文件即可,其中包含你的 API Key。
总结
通过 全盘 D 盘化 + Junction 软链接 方案,我们实现了:
- ✅ Node.js 和 Qwen Code 程序在 D 盘(不怕 C 盘还原)
- ✅ 登录凭证保存在 D 盘(不怕 C 盘还原)
- ✅ 每次启动自动重建 C 盘链接(适配 Qwen Code 的硬编码路径)
- ✅ 重启后双击即用,无需重新安装或认证
适用场景:学校机房、公司办公机、网吧等安装有自动还原精灵的 Windows 环境以及需要将Qwen Code安装其他磁盘。