Merge pull request #454 from Tianmoy/main-fix

fix:修复虚拟环境选项闪退 conda无法激活的问题
This commit is contained in:
SengokuCola
2025-03-17 20:43:46 +08:00
committed by GitHub

View File

@@ -2,12 +2,12 @@
@setlocal enabledelayedexpansion @setlocal enabledelayedexpansion
@chcp 936 @chcp 936
@REM 设置版本号 @REM <EFBFBD><EFBFBD><EFBFBD>ð汾<EFBFBD><EFBFBD>
set "VERSION=1.0" set "VERSION=1.0"
title 麦麦Bot控制台 v%VERSION% title <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ v%VERSION%
@REM 设置PythonGit环境变量 @REM <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python<EFBFBD><EFBFBD>Git<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set "_root=%~dp0" set "_root=%~dp0"
set "_root=%_root:~0,-1%" set "_root=%_root:~0,-1%"
cd "%_root%" cd "%_root%"
@@ -21,14 +21,14 @@ if exist "%_root%\python" (
call "%_root%\venv\Scripts\activate.bat" call "%_root%\venv\Scripts\activate.bat"
set "PYTHON_HOME=%_root%\venv\Scripts" set "PYTHON_HOME=%_root%\venv\Scripts"
) else ( ) else (
echo 正在自动查找Python解释器... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
where python >nul 2>&1 where python >nul 2>&1
if %errorlevel% equ 0 ( if %errorlevel% equ 0 (
for /f "delims=" %%i in ('where python') do ( for /f "delims=" %%i in ('where python') do (
echo %%i | findstr /i /c:"!LocalAppData!\Microsoft\WindowsApps\python.exe" >nul echo %%i | findstr /i /c:"!LocalAppData!\Microsoft\WindowsApps\python.exe" >nul
if errorlevel 1 ( if errorlevel 1 (
echo 找到Python解释器:%%i echo <EFBFBD>ҵ<EFBFBD>Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%%i
set "py_path=%%i" set "py_path=%%i"
goto :validate_python goto :validate_python
) )
@@ -41,46 +41,46 @@ if exist "%_root%\python" (
goto :validate_python goto :validate_python
) )
) )
echo 没有找到Python解释器,要安装吗? echo û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D2AA>װ<EFBFBD><D7B0>?
set /p pyinstall_confirm="继续?(Y/n): " set /p pyinstall_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/n): "
if /i "!pyinstall_confirm!"=="Y" ( if /i "!pyinstall_confirm!"=="Y" (
cls cls
echo 正在安装Python... echo <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>װPython...
winget install --id Python.Python.3.13 -e --accept-package-agreements --accept-source-agreements winget install --id Python.Python.3.13 -e --accept-package-agreements --accept-source-agreements
if %errorlevel% neq 0 ( if %errorlevel% neq 0 (
echo 安装失败,请手动安装Python echo <EFBFBD><EFBFBD>װʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD>װPython
start https://www.python.org/downloads/ start https://www.python.org/downloads/
exit /b exit /b
) )
echo 安装完成,正在验证Python... echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤Python...
goto search_python goto search_python
) else ( ) else (
echo 取消安装Python按任意键退出... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װPython<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>...
pause >nul pause >nul
exit /b exit /b
) )
echo 错误未找到可用的Python解释器 echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
exit /b 1 exit /b 1
:validate_python :validate_python
"!py_path!" --version >nul 2>&1 "!py_path!" --version >nul 2>&1
if %errorlevel% neq 0 ( if %errorlevel% neq 0 (
echo 无效的Python解释器:%py_path% echo <EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%py_path%
exit /b 1 exit /b 1
) )
:: 提取安装目录 :: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>װĿ¼
for %%i in ("%py_path%") do set "PYTHON_HOME=%%~dpi" for %%i in ("%py_path%") do set "PYTHON_HOME=%%~dpi"
set "PYTHON_HOME=%PYTHON_HOME:~0,-1%" set "PYTHON_HOME=%PYTHON_HOME:~0,-1%"
) )
if not exist "%PYTHON_HOME%\python.exe" ( if not exist "%PYTHON_HOME%\python.exe" (
echo Python路径验证失败:%PYTHON_HOME% echo Python·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤ʧ<EFBFBD>ܣ<EFBFBD>%PYTHON_HOME%
echo 请检查Python安装路径中是否有python.exe文件 echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python<EFBFBD><EFBFBD>װ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>python.exe<EFBFBD>ļ<EFBFBD>
exit /b 1 exit /b 1
) )
echo 成功设置Python路径:%PYTHON_HOME% echo <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%PYTHON_HOME%
@@ -89,7 +89,7 @@ cls
if exist "%_root%\tools\git\bin" ( if exist "%_root%\tools\git\bin" (
set "GIT_HOME=%_root%\tools\git\bin" set "GIT_HOME=%_root%\tools\git\bin"
) else ( ) else (
echo 正在自动查找Git... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Git...
where git >nul 2>&1 where git >nul 2>&1
if %errorlevel% equ 0 ( if %errorlevel% equ 0 (
@@ -98,7 +98,7 @@ if exist "%_root%\tools\git\bin" (
goto :validate_git goto :validate_git
) )
) )
echo 正在扫描常见安装路径... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ·<EFBFBD><EFBFBD>...
set "search_paths=!ProgramFiles!\Git\cmd" set "search_paths=!ProgramFiles!\Git\cmd"
for /f "tokens=*" %%d in ("!search_paths!") do ( for /f "tokens=*" %%d in ("!search_paths!") do (
if exist "%%d\git.exe" ( if exist "%%d\git.exe" (
@@ -106,31 +106,31 @@ if exist "%_root%\tools\git\bin" (
goto :validate_git goto :validate_git
) )
) )
echo 没有找到Git要安装吗 echo û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>Git<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p confirm="继续?(Y/N): " set /p confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!confirm!"=="Y" ( if /i "!confirm!"=="Y" (
cls cls
echo 正在安装Git... echo <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>װGit...
set "custom_url=https://ghfast.top/https://github.com/git-for-windows/git/releases/download/v2.48.1.windows.1/Git-2.48.1-64-bit.exe" set "custom_url=https://ghfast.top/https://github.com/git-for-windows/git/releases/download/v2.48.1.windows.1/Git-2.48.1-64-bit.exe"
set "download_path=%TEMP%\Git-Installer.exe" set "download_path=%TEMP%\Git-Installer.exe"
echo 正在下载Git安装包... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Git<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>...
curl -L -o "!download_path!" "!custom_url!" curl -L -o "!download_path!" "!custom_url!"
if exist "!download_path!" ( if exist "!download_path!" (
echo 下载成功,开始安装Git... echo <EFBFBD><EFBFBD><EFBFBD>سɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>װGit...
start /wait "" "!download_path!" /SILENT /NORESTART start /wait "" "!download_path!" /SILENT /NORESTART
) else ( ) else (
echo 下载失败,请手动安装Git echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD>װGit
start https://git-scm.com/download/win start https://git-scm.com/download/win
exit /b exit /b
) )
del "!download_path!" del "!download_path!"
echo 临时文件已清理。 echo <EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 安装完成,正在验证Git... echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤Git...
where git >nul 2>&1 where git >nul 2>&1
if %errorlevel% equ 0 ( if %errorlevel% equ 0 (
for /f "delims=" %%i in ('where git') do ( for /f "delims=" %%i in ('where git') do (
@@ -140,28 +140,28 @@ if exist "%_root%\tools\git\bin" (
goto :search_git goto :search_git
) else ( ) else (
echo 安装完成但未找到Git请手动安装Git echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD>Git<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD>װGit
start https://git-scm.com/download/win start https://git-scm.com/download/win
exit /b exit /b
) )
) else ( ) else (
echo 取消安装Git按任意键退出... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װGit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>...
pause >nul pause >nul
exit /b exit /b
) )
echo 错误:未找到可用的Git echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Git<EFBFBD><EFBFBD>
exit /b 1 exit /b 1
:validate_git :validate_git
"%git_path%" --version >nul 2>&1 "%git_path%" --version >nul 2>&1
if %errorlevel% neq 0 ( if %errorlevel% neq 0 (
echo 无效的Git%git_path% echo <EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>Git<EFBFBD><EFBFBD>%git_path%
exit /b 1 exit /b 1
) )
:: 提取安装目录 :: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>װĿ¼
for %%i in ("%git_path%") do set "GIT_HOME=%%~dpi" for %%i in ("%git_path%") do set "GIT_HOME=%%~dpi"
set "GIT_HOME=%GIT_HOME:~0,-1%" set "GIT_HOME=%GIT_HOME:~0,-1%"
) )
@@ -170,40 +170,40 @@ if exist "%_root%\tools\git\bin" (
cls cls
sc query | findstr /i "MongoDB" >nul sc query | findstr /i "MongoDB" >nul
if !errorlevel! neq 0 ( if !errorlevel! neq 0 (
echo MongoDB服务未运行,是否尝试运行服务? echo MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p confirm="是否启动?(Y/N): " set /p confirm="<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!confirm!"=="Y" ( if /i "!confirm!"=="Y" (
echo 正在尝试启动MongoDB服务... echo <EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
powershell -Command "Start-Process -Verb RunAs cmd -ArgumentList '/c net start MongoDB'" powershell -Command "Start-Process -Verb RunAs cmd -ArgumentList '/c net start MongoDB'"
echo 正在等待MongoDB服务启动... echo <EFBFBD><EFBFBD><EFBFBD>ڵȴ<EFBFBD>MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
echo 按下任意键跳过等待... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>...
timeout /t 30 >nul timeout /t 30 >nul
sc query | findstr /i "MongoDB" >nul sc query | findstr /i "MongoDB" >nul
if !errorlevel! neq 0 ( if !errorlevel! neq 0 (
echo MongoDB服务启动失败,可能是没有安装,要安装吗? echo MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>а<EFBFBD>װ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p install_confirm="继续安装?(Y/N): " set /p install_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>(Y/N): "
if /i "!install_confirm!"=="Y" ( if /i "!install_confirm!"=="Y" (
echo 正在安装MongoDB... echo <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>װMongoDB...
winget install --id MongoDB.Server -e --accept-package-agreements --accept-source-agreements winget install --id MongoDB.Server -e --accept-package-agreements --accept-source-agreements
echo 安装完成,正在启动MongoDB服务... echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
net start MongoDB net start MongoDB
if !errorlevel! neq 0 ( if !errorlevel! neq 0 (
echo 启动MongoDB服务失败,请手动启动 echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
exit /b exit /b
) else ( ) else (
echo MongoDB服务已成功启动 echo MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
) )
) else ( ) else (
echo 取消安装MongoDB,按任意键退出... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װMongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>...
pause >nul pause >nul
exit /b exit /b
) )
) )
) else ( ) else (
echo "警告:MongoDB服务未运行将导致MaiMBot无法访问数据库" echo "<EFBFBD><EFBFBD><EFBFBD>MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MaiMBot<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ⣡"
) )
) else ( ) else (
echo MongoDB服务已运行 echo MongoDB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
) )
@REM set "GIT_HOME=%_root%\tools\git\bin" @REM set "GIT_HOME=%_root%\tools\git\bin"
@@ -212,47 +212,47 @@ set "PATH=%PYTHON_HOME%;%GIT_HOME%;%PATH%"
:install_maim :install_maim
if not exist "!_root!\bot.py" ( if not exist "!_root!\bot.py" (
cls cls
echo 你似乎没有安装麦麦Bot要安装在当前目录吗 echo <EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD>û<EFBFBD>а<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>װ<EFBFBD>ڵ<EFBFBD>ǰĿ¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p confirm="继续?(Y/N): " set /p confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!confirm!"=="Y" ( if /i "!confirm!"=="Y" (
echo 要使用Git代理下载吗 echo Ҫʹ<EFBFBD><EFBFBD>Git<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p proxy_confirm="继续?(Y/N): " set /p proxy_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!proxy_confirm!"=="Y" ( if /i "!proxy_confirm!"=="Y" (
echo 正在安装麦麦Bot... echo <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot...
git clone https://ghfast.top/https://github.com/SengokuCola/MaiMBot git clone https://ghfast.top/https://github.com/SengokuCola/MaiMBot
) else ( ) else (
echo 正在安装麦麦Bot... echo <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot...
git clone https://github.com/SengokuCola/MaiMBot git clone https://github.com/SengokuCola/MaiMBot
) )
xcopy /E /H /I MaiMBot . >nul 2>&1 xcopy /E /H /I MaiMBot . >nul 2>&1
rmdir /s /q MaiMBot rmdir /s /q MaiMBot
git checkout main-fix git checkout main-fix
echo 安装完成,正在安装依赖... echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
python -m pip install virtualenv python -m pip install virtualenv
python -m virtualenv venv python -m virtualenv venv
call venv\Scripts\activate.bat call venv\Scripts\activate.bat
python -m pip install -r requirements.txt python -m pip install -r requirements.txt
echo 安装完成,要编辑配置文件吗? echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p edit_confirm="继续?(Y/N): " set /p edit_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!edit_confirm!"=="Y" ( if /i "!edit_confirm!"=="Y" (
goto config_menu goto config_menu
) else ( ) else (
echo 取消编辑配置文件,按任意键返回主菜单... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) )
) )
) )
@REM git获取当前分支名并保存在变量里 @REM git<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for /f "delims=" %%b in ('git symbolic-ref --short HEAD 2^>nul') do ( for /f "delims=" %%b in ('git symbolic-ref --short HEAD 2^>nul') do (
set "BRANCH=%%b" set "BRANCH=%%b"
) )
@REM 根据不同分支名给分支名字符串使用不同颜色 @REM <EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD>ͬ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ò<EFBFBD>ͬ<EFBFBD><EFBFBD>ɫ
echo 分支名: %BRANCH% echo <EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>: %BRANCH%
if "!BRANCH!"=="main" ( if "!BRANCH!"=="main" (
set "BRANCH_COLOR=" set "BRANCH_COLOR="
) else if "!BRANCH!"=="main-fix" ( ) else if "!BRANCH!"=="main-fix" (
@@ -266,78 +266,78 @@ if "!BRANCH!"=="main" (
@REM endlocal & set "BRANCH_COLOR=%BRANCH_COLOR%" @REM endlocal & set "BRANCH_COLOR=%BRANCH_COLOR%"
:check_is_venv :check_is_venv
echo 正在检查虚拟环境状态... echo <EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬...
if exist "%_root%\config\no_venv" ( if exist "%_root%\config\no_venv" (
echo 检测到no_venv,跳过虚拟环境检查 echo <EFBFBD><EFBFBD><EFBFBD>no_venv,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
goto menu goto menu
) )
:: 环境检测 :: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if defined VIRTUAL_ENV ( if defined VIRTUAL_ENV (
goto menu goto menu
) )
echo ===================================== echo =====================================
echo 虚拟环境检测警告: echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 当前使用系统Python路径:!PYTHON_HOME! echo <EFBFBD><EFBFBD>ǰʹ<EFBFBD><EFBFBD>ϵͳPython·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!PYTHON_HOME!
echo 未检测到激活的虚拟环境! echo δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
:env_interaction :env_interaction
echo ===================================== echo =====================================
echo 请选择操作: echo <EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 1 - 创建并激活Venv虚拟环境 echo 1 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Venv<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 2 - 创建/激活Conda虚拟环境 echo 2 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>Conda<64><61><EFBFBD><EFBFBD><E2BBB7>
echo 3 - 临时跳过本次检查 echo 3 - <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD>
echo 4 - 永久跳过虚拟环境检查 echo 4 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p choice="请输入选项(1-4): " set /p choice="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>(1-4): "
if "!choice!" = "4" ( if "!choice!"=="4" (
echo 要永久跳过虚拟环境检查吗? echo Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p no_venv_confirm="继续?(Y/N): ....." set /p no_venv_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): ....."
if /i "!no_venv_confirm!"=="Y" ( if /i "!no_venv_confirm!"=="Y" (
echo 1 > "%_root%\config\no_venv" echo 1 > "%_root%\config\no_venv"
echo 已创建no_venv文件 echo <EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD>no_venv<EFBFBD>ļ<EFBFBD>
pause >nul pause >nul
goto menu goto menu
) else ( ) else (
echo 取消跳过虚拟环境检查,按任意键返回... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
pause >nul pause >nul
goto env_interaction goto env_interaction
) )
) )
if "!choice!" = "3"( if "!choice!"=="3" (
echo 警告:使用系统环境可能导致依赖冲突! echo <EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD>
timeout /t 2 >nul timeout /t 2 >nul
goto menu goto menu
) )
if "!choice!" = "2" goto handle_conda if "!choice!"=="2" goto handle_conda
if "!choice!" = "1" goto handle_venv if "!choice!"=="1" goto handle_venv
echo 无效的输入请输入1-4之间的数字 echo <EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-4֮<34><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeout /t 2 >nul timeout /t 2 >nul
goto env_interaction goto env_interaction
:handle_venv :handle_venv
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
echo 正在初始化Venv环境... echo <EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><EFBFBD>Venv<EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
python -m pip install virtualenv || ( python -m pip install virtualenv || (
echo 安装环境失败,错误码:!errorlevel! echo <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!errorlevel!
pause pause
goto env_interaction goto env_interaction
) )
echo 创建虚拟环境到:venv echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>venv
python -m virtualenv venv || ( python -m virtualenv venv || (
echo 环境创建失败,错误码:!errorlevel! echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!errorlevel!
pause pause
goto env_interaction goto env_interaction
) )
call venv\Scripts\activate.bat call venv\Scripts\activate.bat
echo 已激活Venv环境 echo <EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD>Venv<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 要安装依赖吗? echo Ҫ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p install_confirm="继续?(Y/N): " set /p install_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!install_confirm!"=="Y" ( if /i "!install_confirm!"=="Y" (
goto update_dependencies goto update_dependencies
) )
@@ -345,66 +345,70 @@ goto menu
:handle_conda :handle_conda
where conda >nul 2>&1 || ( where conda >nul 2>&1 || (
echo 未检测到conda可能原因 echo δ<EFBFBD><EFBFBD><EFBFBD>⵽conda<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 1. 未安装Miniconda echo 1. δ<EFBFBD><EFBFBD>װMiniconda
echo 2. conda配置异常 echo 2. conda<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeout /t 10 >nul timeout /t 10 >nul
goto env_interaction goto env_interaction
) )
:conda_menu :conda_menu
echo 请选择Conda操作 echo <EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>Conda<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 1 - 创建新环境 echo 1 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><EFBFBD><EFBFBD>
echo 2 - 激活已有环境 echo 2 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>
echo 3 - 返回上级菜单 echo 3 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD>˵<EFBFBD>
set /p choice="请输入选项(1-3): " set /p choice="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>(1-3): "
if "!choice!"=="3" goto env_interaction if "!choice!"=="3" goto env_interaction
if "!choice!"=="2" goto activate_conda if "!choice!"=="2" goto activate_conda
if "!choice!"=="1" goto create_conda if "!choice!"=="1" goto create_conda
echo <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-3֮<33><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeout /t 2 >nul
goto conda_menu
:create_conda :create_conda
set /p "CONDA_ENV=请输入新环境名称:" set /p "CONDA_ENV=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>"
if "!CONDA_ENV!"=="" ( if "!CONDA_ENV!"=="" (
echo 环境名称不能为空! echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>
goto create_conda goto create_conda
) )
conda create -n !CONDA_ENV! python=3.13 -y || ( conda create -n !CONDA_ENV! python=3.13 -y || (
echo 环境创建失败,错误码:!errorlevel! echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!errorlevel!
pause timeout /t 10 >nul
goto conda_menu goto conda_menu
) )
goto activate_conda goto activate_conda
:activate_conda :activate_conda
set /p "CONDA_ENV=请输入要激活的环境名称:" set /p "CONDA_ENV=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>"
conda activate !CONDA_ENV! || ( call conda activate !CONDA_ENV! || (
echo 激活失败,可能原因: echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 1. 环境不存在 echo 1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 2. conda配置异常 echo 2. conda<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pause pause
goto conda_menu goto conda_menu
) )
echo 成功激活conda环境!CONDA_ENV! echo <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>conda<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!CONDA_ENV!
echo 要安装依赖吗? echo Ҫ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p install_confirm="继续?(Y/N): " set /p install_confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!install_confirm!"=="Y" ( if /i "!install_confirm!"=="Y" (
goto update_dependencies goto update_dependencies
) )
:menu :menu
@chcp 936 @chcp 936
cls cls
echo 麦麦Bot控制台 v%VERSION% 当前分支: %BRANCH_COLOR%%BRANCH% echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ v%VERSION% <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧: %BRANCH_COLOR%%BRANCH%
echo 当前Python环境: !PYTHON_HOME! echo <EFBFBD><EFBFBD>ǰPython<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: !PYTHON_HOME!
echo ====================== echo ======================
echo 1. 更新并启动麦麦Bot (默认) echo 1. <EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot (Ĭ<EFBFBD><EFBFBD>)
echo 2. 直接启动麦麦Bot echo 2. ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bot
echo 3. 启动麦麦配置界面 echo 3. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>
echo 4. 打开麦麦神奇工具箱 echo 4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 5. 退出 echo 5. <EFBFBD>˳<EFBFBD>
echo ====================== echo ======================
set /p choice="请输入选项数字 (1-5)并按下回车以选择: " set /p choice="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (1-5)<29><><EFBFBD><EFBFBD><EFBFBD>»س<C2BB><D8B3><EFBFBD>ѡ<EFBFBD><D1A1>: "
if "!choice!"=="" set choice=1 if "!choice!"=="" set choice=1
@@ -414,7 +418,7 @@ if "!choice!"=="3" goto config_menu
if "!choice!"=="4" goto tools_menu if "!choice!"=="4" goto tools_menu
if "!choice!"=="5" exit /b if "!choice!"=="5" exit /b
echo 无效的输入请输入1-5之间的数字 echo <EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-5֮<35><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeout /t 2 >nul timeout /t 2 >nul
goto menu goto menu
@@ -437,18 +441,18 @@ goto menu
:tools_menu :tools_menu
@chcp 936 @chcp 936
cls cls
echo 麦麦时尚工具箱 当前分支: %BRANCH_COLOR%%BRANCH% echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰ<EFBFBD><C7B0>֧: %BRANCH_COLOR%%BRANCH%
echo ====================== echo ======================
echo 1. 更新依赖 echo 1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo 2. 切换分支 echo 2. <EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>֧
echo 3. 重置当前分支 echo 3. <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><EFBFBD>֧
echo 4. 更新配置文件 echo 4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
echo 5. 学习新的知识库 echo 5. ѧϰ<EFBFBD>µ<EFBFBD>֪ʶ<EFBFBD><EFBFBD>
echo 6. 打开知识库文件夹 echo 6. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ʶ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
echo 7. 返回主菜单 echo 7. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
echo ====================== echo ======================
set /p choice="请输入选项数字: " set /p choice="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: "
if "!choice!"=="1" goto update_dependencies if "!choice!"=="1" goto update_dependencies
if "!choice!"=="2" goto switch_branch if "!choice!"=="2" goto switch_branch
if "!choice!"=="3" goto reset_branch if "!choice!"=="3" goto reset_branch
@@ -457,29 +461,29 @@ if "!choice!"=="5" goto learn_new_knowledge
if "!choice!"=="6" goto open_knowledge_folder if "!choice!"=="6" goto open_knowledge_folder
if "!choice!"=="7" goto menu if "!choice!"=="7" goto menu
echo 无效的输入请输入1-6之间的数字 echo <EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-6֮<36><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeout /t 2 >nul timeout /t 2 >nul
goto tools_menu goto tools_menu
:update_dependencies :update_dependencies
cls cls
echo 正在更新依赖... echo <EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
python.exe -m pip install -r requirements.txt python.exe -m pip install -r requirements.txt
echo 依赖更新完成,按任意键返回工具箱菜单... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
pause pause
goto tools_menu goto tools_menu
:switch_branch :switch_branch
cls cls
echo 正在切换分支... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>֧...
echo 当前分支: %BRANCH% echo <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧: %BRANCH%
@REM echo 可用分支: main, debug, stable-dev @REM echo <EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>֧: main, debug, stable-dev
echo 1. 切换到main echo 1. <EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>main
echo 2. 切换到main-fix echo 2. <EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>main-fix
echo 请输入要切换到的分支: echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>֧:
set /p branch_name="分支名: " set /p branch_name="<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>: "
if "%branch_name%"=="" set branch_name=main if "%branch_name%"=="" set branch_name=main
if "%branch_name%"=="main" ( if "%branch_name%"=="main" (
set "BRANCH_COLOR=" set "BRANCH_COLOR="
@@ -494,32 +498,32 @@ if "%branch_name%"=="main" (
set "BRANCH_COLOR=" set "BRANCH_COLOR="
set "branch_name=main-fix" set "branch_name=main-fix"
) else ( ) else (
echo 无效的分支名, 请重新输入 echo <EFBFBD><EFBFBD>Ч<EFBFBD>ķ<EFBFBD>֧<EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeout /t 2 >nul timeout /t 2 >nul
goto switch_branch goto switch_branch
) )
echo 正在切换到分支 %branch_name%... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧ %branch_name%...
git checkout %branch_name% git checkout %branch_name%
echo 分支切换完成,当前分支: %BRANCH_COLOR%%branch_name% echo <EFBFBD><EFBFBD>֧<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧: %BRANCH_COLOR%%branch_name%
set "BRANCH=%branch_name%" set "BRANCH=%branch_name%"
echo 按任意键返回工具箱菜单... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
pause >nul pause >nul
goto tools_menu goto tools_menu
:reset_branch :reset_branch
cls cls
echo 正在重置当前分支... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><EFBFBD>֧...
echo 当前分支: !BRANCH! echo <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>֧: !BRANCH!
echo 确认要重置当前分支吗? echo ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
set /p confirm="继续?(Y/N): " set /p confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!confirm!"=="Y" ( if /i "!confirm!"=="Y" (
echo 正在重置当前分支... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><EFBFBD>֧...
git reset --hard !BRANCH! git reset --hard !BRANCH!
echo 分支重置完成,按任意键返回工具箱菜单... echo <EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) else ( ) else (
echo 取消重置当前分支,按任意键返回工具箱菜单... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) )
pause >nul pause >nul
goto tools_menu goto tools_menu
@@ -527,44 +531,44 @@ goto tools_menu
:update_config :update_config
cls cls
echo 正在更新配置文件... echo <EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>...
echo 请确保已备份重要数据,继续将修改当前配置文件。 echo <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
echo 继续请按Y取消请按任意键... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴Y<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
set /p confirm="继续?(Y/N): " set /p confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!confirm!"=="Y" ( if /i "!confirm!"=="Y" (
echo 正在更新配置文件... echo <EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>...
python.exe config\auto_update.py python.exe config\auto_update.py
echo 配置文件更新完成,按任意键返回工具箱菜单... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) else ( ) else (
echo 取消更新配置文件,按任意键返回工具箱菜单... echo ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) )
pause >nul pause >nul
goto tools_menu goto tools_menu
:learn_new_knowledge :learn_new_knowledge
cls cls
echo 正在学习新的知识库... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧϰ<EFBFBD>µ<EFBFBD>֪ʶ<EFBFBD><EFBFBD>...
echo 请确保已备份重要数据,继续将修改当前知识库。 echo <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<EFBFBD>ǰ֪ʶ<EFBFBD>
echo 继续请按Y取消请按任意键... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴Y<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
set /p confirm="继续?(Y/N): " set /p confirm="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N): "
if /i "!confirm!"=="Y" ( if /i "!confirm!"=="Y" (
echo 正在学习新的知识库... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧϰ<EFBFBD>µ<EFBFBD>֪ʶ<EFBFBD><EFBFBD>...
python.exe src\plugins\zhishi\knowledge_library.py python.exe src\plugins\zhishi\knowledge_library.py
echo 学习完成,按任意键返回工具箱菜单... echo ѧϰ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) else ( ) else (
echo 取消学习新的知识库,按任意键返回工具箱菜单... echo ȡ<EFBFBD><EFBFBD>ѧϰ<EFBFBD>µ<EFBFBD>֪ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
) )
pause >nul pause >nul
goto tools_menu goto tools_menu
:open_knowledge_folder :open_knowledge_folder
cls cls
echo 正在打开知识库文件夹... echo <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>֪ʶ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>...
if exist data\raw_info ( if exist data\raw_info (
start explorer data\raw_info start explorer data\raw_info
) else ( ) else (
echo 知识库文件夹不存在! echo ֪ʶ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
echo 正在创建文件夹... echo <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>...
mkdir data\raw_info mkdir data\raw_info
timeout /t 2 >nul timeout /t 2 >nul
) )
@@ -577,18 +581,18 @@ cls
git pull > temp.log 2>&1 git pull > temp.log 2>&1
findstr /C:"detected dubious ownership" temp.log >nul findstr /C:"detected dubious ownership" temp.log >nul
if %errorlevel% equ 0 ( if %errorlevel% equ 0 (
echo 检测到仓库权限问题,正在自动修复... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>޸<EFBFBD>...
git config --global --add safe.directory "%cd%" git config --global --add safe.directory "%cd%"
echo 已添加例外,正在重试git pull... echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>git pull...
del temp.log del temp.log
goto retry_git_pull goto retry_git_pull
) )
del temp.log del temp.log
echo 正在更新依赖... echo <EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
python -m pip install -r requirements.txt && cls python -m pip install -r requirements.txt && cls
echo 当前代理设置: echo <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
echo HTTP_PROXY=%HTTP_PROXY% echo HTTP_PROXY=%HTTP_PROXY%
echo HTTPS_PROXY=%HTTPS_PROXY% echo HTTPS_PROXY=%HTTPS_PROXY%
@@ -600,17 +604,17 @@ set no_proxy=0.0.0.0/32
REM chcp 65001 REM chcp 65001
python bot.py python bot.py
echo. echo.
echo Bot已停止运行,按任意键返回主菜单... echo Bot<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
pause >nul pause >nul
goto menu goto menu
:start_bot :start_bot
cls cls
echo 正在更新依赖... echo <EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
python -m pip install -r requirements.txt && cls python -m pip install -r requirements.txt && cls
echo 当前代理设置: echo <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
echo HTTP_PROXY=%HTTP_PROXY% echo HTTP_PROXY=%HTTP_PROXY%
echo HTTPS_PROXY=%HTTPS_PROXY% echo HTTPS_PROXY=%HTTPS_PROXY%
@@ -622,7 +626,7 @@ set no_proxy=0.0.0.0/32
REM chcp 65001 REM chcp 65001
python bot.py python bot.py
echo. echo.
echo Bot已停止运行,按任意键返回主菜单... echo Bot<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>...
pause >nul pause >nul
goto menu goto menu