@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 已安装 echo. wsl --version echo. ) 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 已启用 ) else ( echo WARN: WSL2 未启用 echo INFO: WSL 发行版列表: echo. wsl -l -v echo. echo INFO: 请运行以下命令启用 WSL2: echo wsl --set-default-version 2 goto :error ) :: 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. 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