Wsl2DebianEnv/scripts/system/upgrade_wsl2.bat

129 lines
3.2 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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