ollama.bat 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :: 获取实际存在的盘符
  4. echo 正在搜索可用的盘符...
  5. set count=0
  6. for /f "skip=1 tokens=2 delims==" %%d in ('wmic logicaldisk get name /value') do (
  7. if exist %%d (
  8. set /a count+=1
  9. echo !count!. %%d
  10. set "drive!count!=%%d"
  11. )
  12. )
  13. :: 如果没有找到可用盘符,退出
  14. if %count%==0 (
  15. echo 未找到可用的盘符,脚本退出。
  16. pause
  17. exit /b
  18. )
  19. :: 提示用户选择盘符
  20. set /p choice=请选择要转移到的盘符序号:
  21. :: 获取用户选择的盘符
  22. set "target_drive=!drive%choice%!"
  23. :: 设置默认路径
  24. set "default_path=%target_drive%Ollama_Models"
  25. :: 提示用户确认路径
  26. set /p target_path=请输入目标路径 (默认为 %default_path%):
  27. :: 如果用户没有输入路径,则使用默认路径
  28. if "%target_path%"=="" set "target_path=%default_path%"
  29. :: 创建目标路径
  30. if not exist "%target_path%" (
  31. mkdir "%target_path%"
  32. )
  33. :: 假设Ollama模型文件在C:\Ollama_Models
  34. set "source_path=C:\Ollama_Models"
  35. :: 转移文件
  36. echo 正在转移文件从 %source_path% 到 %target_path%...
  37. xcopy "%source_path%" "%target_path%" /E /H /C /I /Y
  38. :: 获取当前环境变量值
  39. set "current_ollama_path="
  40. for /f "tokens=2,*" %%a in ('reg query "HKCU\Environment" /v Ollama_Models 2^>nul') do (
  41. set "current_ollama_path=%%b"
  42. )
  43. :: 如果环境变量存在,显示当前值并提示是否修改
  44. if defined current_ollama_path (
  45. echo 当前环境变量 Ollama_Models 的值为: %current_ollama_path%
  46. set /p modify_env=是否根据新路径更新环境变量? (Y/N, 默认 N):
  47. if /i "%modify_env%"=="Y" (
  48. setx Ollama_Models "%target_path%"
  49. echo 环境变量已更新为: %target_path%
  50. ) else (
  51. echo 环境变量未修改。
  52. )
  53. ) else (
  54. :: 如果环境变量不存在,提示是否添加
  55. set /p add_env=是否将新路径添加到环境变量? (Y/N, 默认 N):
  56. if /i "%add_env%"=="Y" (
  57. setx Ollama_Models "%target_path%"
  58. echo 环境变量已添加: %target_path%
  59. ) else (
  60. echo 未添加环境变量。
  61. )
  62. )
  63. echo 文件转移完成!
  64. pause