@echo off setlocal enabledelayedexpansion :: 获取实际存在的盘符 echo 正在搜索可用的盘符... set count=0 for /f "skip=1 tokens=2 delims==" %%d in ('wmic logicaldisk get name /value') do ( if exist %%d ( set /a count+=1 echo !count!. %%d set "drive!count!=%%d" ) ) :: 如果没有找到可用盘符,退出 if %count%==0 ( echo 未找到可用的盘符,脚本退出。 pause exit /b ) :: 提示用户选择盘符 set /p choice=请选择要转移到的盘符序号: :: 获取用户选择的盘符 set "target_drive=!drive%choice%!" :: 设置默认路径 set "default_path=%target_drive%Ollama_Models" :: 提示用户确认路径 set /p target_path=请输入目标路径 (默认为 %default_path%): :: 如果用户没有输入路径,则使用默认路径 if "%target_path%"=="" set "target_path=%default_path%" :: 创建目标路径 if not exist "%target_path%" ( mkdir "%target_path%" ) :: 假设Ollama模型文件在C:\Ollama_Models set "source_path=C:\Ollama_Models" :: 转移文件 echo 正在转移文件从 %source_path% 到 %target_path%... xcopy "%source_path%" "%target_path%" /E /H /C /I /Y :: 获取当前环境变量值 set "current_ollama_path=" for /f "tokens=2,*" %%a in ('reg query "HKCU\Environment" /v Ollama_Models 2^>nul') do ( set "current_ollama_path=%%b" ) :: 如果环境变量存在,显示当前值并提示是否修改 if defined current_ollama_path ( echo 当前环境变量 Ollama_Models 的值为: %current_ollama_path% set /p modify_env=是否根据新路径更新环境变量? (Y/N, 默认 N): if /i "%modify_env%"=="Y" ( setx Ollama_Models "%target_path%" echo 环境变量已更新为: %target_path% ) else ( echo 环境变量未修改。 ) ) else ( :: 如果环境变量不存在,提示是否添加 set /p add_env=是否将新路径添加到环境变量? (Y/N, 默认 N): if /i "%add_env%"=="Y" ( setx Ollama_Models "%target_path%" echo 环境变量已添加: %target_path% ) else ( echo 未添加环境变量。 ) ) echo 文件转移完成! pause