129 lines
3.2 KiB
Batchfile
129 lines
3.2 KiB
Batchfile
@echo off
|
||
chcp 65001 >nul
|
||
setlocal enabledelayedexpansion
|
||
|
||
:: Check for admin privileges
|
||
net session >nul 2>&1
|
||
if %errorlevel% neq 0 (
|
||
echo "[WARN] 需要管理员权限"
|
||
echo "[INFO] 请右键点击此脚本,选择"以管理员身份运行""
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
echo.
|
||
echo "[INFO] 开始升级 WSL2 并重新安装 Debian..."
|
||
echo.
|
||
|
||
:: Check WSL installation
|
||
echo "[INFO] 检查 WSL 安装状态..."
|
||
wsl --version >nul 2>&1
|
||
if %errorlevel% neq 0 (
|
||
echo "[ERROR] WSL 未安装"
|
||
echo "[INFO] 请访问 https://aka.ms/wsl 安装 WSL"
|
||
goto :error
|
||
)
|
||
|
||
:: Upgrade WSL
|
||
echo "[INFO] 正在升级 WSL..."
|
||
wsl --update
|
||
if %errorlevel% neq 0 (
|
||
echo "[ERROR] WSL 升级失败"
|
||
goto :error
|
||
)
|
||
echo "[INFO] WSL 升级完成"
|
||
|
||
:: Set WSL2 as default
|
||
echo "[INFO] 设置 WSL2 为默认版本..."
|
||
wsl --set-default-version 2
|
||
if %errorlevel% neq 0 (
|
||
echo "[ERROR] 设置 WSL2 为默认版本失败"
|
||
goto :error
|
||
)
|
||
echo "[INFO] WSL2 已设置为默认版本"
|
||
|
||
:: Check if Debian is installed
|
||
echo "[INFO] 检查 Debian 安装状态..."
|
||
wsl -d Debian echo "Debian is installed" >nul 2>&1
|
||
if %errorlevel% equ 0 (
|
||
echo "[INFO] 检测到已安装的 Debian"
|
||
echo.
|
||
echo "[WARN] 是否要卸载现有的 Debian?"
|
||
echo "[INFO] 1. 是"
|
||
echo "[INFO] 2. 否"
|
||
echo.
|
||
set /p "choice=请选择 (1/2): "
|
||
if "!choice!"=="1" (
|
||
echo "[INFO] 正在卸载 Debian..."
|
||
wsl --unregister Debian
|
||
if %errorlevel% neq 0 (
|
||
echo "[ERROR] Debian 卸载失败"
|
||
goto :error
|
||
)
|
||
echo "[INFO] Debian 已卸载"
|
||
) else (
|
||
echo "[INFO] 已取消卸载 Debian"
|
||
goto :error
|
||
)
|
||
)
|
||
|
||
:: Choose installation location
|
||
echo.
|
||
echo "[INFO] 请选择 Debian 安装位置:"
|
||
echo "[INFO] 1. 默认位置"
|
||
echo "[INFO] 2. 自定义位置"
|
||
echo.
|
||
set /p "location=请选择 (1/2): "
|
||
|
||
if "!location!"=="2" (
|
||
echo "[INFO] 请输入安装路径(例如:D:\WSL\Debian)"
|
||
set /p "install_path=安装路径: "
|
||
if not exist "!install_path!" mkdir "!install_path!"
|
||
echo "[INFO] 正在安装 Debian 到 !install_path! ..."
|
||
wsl --install -d Debian --location "!install_path!"
|
||
) else (
|
||
echo "[INFO] 正在安装 Debian 到默认位置..."
|
||
wsl --install -d Debian
|
||
)
|
||
|
||
if %errorlevel% neq 0 (
|
||
echo "[ERROR] Debian 安装失败"
|
||
goto :error
|
||
)
|
||
echo "[INFO] Debian 安装完成"
|
||
|
||
:: Verify installation
|
||
echo "[INFO] 验证安装..."
|
||
wsl -d Debian echo "Debian is installed" >nul 2>&1
|
||
if %errorlevel% equ 0 (
|
||
echo "[INFO] Debian 安装验证成功"
|
||
echo "[INFO] 请打开新的终端窗口,完成 Debian 的初始设置"
|
||
) else (
|
||
echo "[ERROR] Debian 安装验证失败"
|
||
goto :error
|
||
)
|
||
|
||
echo.
|
||
echo "============================================"
|
||
echo " 升级和安装完成!"
|
||
echo "============================================"
|
||
echo.
|
||
echo "[INFO] 请按照以下步骤完成设置:"
|
||
echo "[INFO] 1. 打开新的终端窗口"
|
||
echo "[INFO] 2. 等待 Debian 首次启动"
|
||
echo "[INFO] 3. 设置用户名和密码"
|
||
echo "[INFO] 4. 运行 check_windows_wsl.bat 验证环境"
|
||
echo.
|
||
echo "[INFO] 按任意键退出..."
|
||
pause >nul
|
||
goto :eof
|
||
|
||
:error
|
||
echo.
|
||
echo "[WARN] 操作失败,请检查错误信息"
|
||
echo "[INFO] 按任意键退出..."
|
||
pause >nul
|
||
exit /b 1
|
||
|
||
:eof
|
||
endlocal |