@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 环境... echo. :: Check Windows version echo [INFO] 检查 Windows 版本... for /f "tokens=*" %%a in ('ver') do set "windows_version=%%a" echo Windows 版本: !windows_version! :: Check WSL installation echo [INFO] 检查 WSL 安装状态... wsl --version >nul 2>&1 if %errorlevel% equ 0 ( echo [INFO] WSL 已安装 wsl --version ) else ( echo [ERROR] WSL 未安装 echo [INFO] 请访问 https://aka.ms/wsl 安装 WSL goto :error ) :: Check WSL2 status echo [INFO] 检查 WSL2 状态... wsl -l -v > temp.txt findstr /i "2" temp.txt >nul if %errorlevel% equ 0 ( echo [INFO] WSL2 已启用 echo [INFO] WSL 发行版列表: type temp.txt ) else ( echo [WARN] WSL2 未启用 echo [INFO] 请运行以下命令启用 WSL2: echo wsl --set-default-version 2 goto :error ) del temp.txt :: Check Debian installation echo [INFO] 检查 Debian 安装状态... wsl -d Debian echo "Debian is installed" >nul 2>&1 if %errorlevel% equ 0 ( echo [INFO] Debian 已安装 ) else ( echo [WARN] Debian 未安装 echo [INFO] 请运行以下命令安装 Debian: echo wsl --install -d Debian goto :error ) :: Check virtualization echo [INFO] 检查虚拟化状态... systeminfo | findstr /i "Hyper-V" > temp.txt findstr /i "Virtual Ethernet Adapter" temp.txt >nul if %errorlevel% equ 0 ( echo [INFO] 虚拟化已启用 ) else ( findstr /i "hypervisor has been detected" temp.txt >nul if %errorlevel% equ 0 ( echo [INFO] 虚拟化已启用 ) else ( echo [ERROR] 虚拟化未启用 echo [INFO] 请在 BIOS 中启用虚拟化 (Intel VT-x 或 AMD-V) goto :error ) ) del temp.txt :: Check Windows features echo [INFO] 检查 Windows 功能... dism /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux > temp.txt findstr /i "状态.*已启用" temp.txt >nul if %errorlevel% equ 0 ( echo [INFO] Linux 子系统已启用 ) else ( echo [WARN] Linux 子系统未启用 echo [INFO] 请运行以下命令启用 Linux 子系统: echo dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart goto :error ) dism /online /get-featureinfo /featurename:VirtualMachinePlatform > temp.txt findstr /i "状态.*已启用" temp.txt >nul if %errorlevel% equ 0 ( echo [INFO] 虚拟机平台已启用 ) else ( echo [WARN] 虚拟机平台未启用 echo [INFO] 请运行以下命令启用虚拟机平台: echo dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart goto :error ) del temp.txt echo. echo ============================================ echo 检查完成!环境已就绪 echo ============================================ echo. echo [INFO] 您的 WSL2 环境已经准备就绪: echo [INFO] 1. Windows 版本符合要求 echo [INFO] 2. WSL2 已正确安装并启用 echo [INFO] 3. Debian 发行版已安装 echo [INFO] 4. 虚拟化功能已启用 echo [INFO] 5. 所需的 Windows 功能已启用 echo. echo [INFO] 您现在可以开始使用 WSL2 环境了! echo ============================================ echo. echo [INFO] 按任意键退出... pause >nul goto :eof :error echo. echo [WARN] 检查未通过,请按照提示解决问题 echo [INFO] 按任意键退出... pause >nul exit /b 1 :eof endlocal