制作无主之地3无开场bat脚本:如何创建并读取ini存储游戏路径
无主之地3无开场脚本路径持久化实现方案
核心修改逻辑
- 脚本启动优先读取同目录下的
bl3settings.ini配置文件,若文件存在且存储的路径有效,直接复用路径无需二次输入 - 仅当配置文件不存在、或存储的路径无法匹配无主之地3目录结构时,才触发路径输入询问
- 每次确认输入的有效路径都会自动更新配置文件,保证下次运行读取最新路径
修改后完整代码
@echo off title Borderlands 3 No Intro Script :: 优先读取本地存储的配置 set "BL3=" if exist "bl3settings.ini" ( set /p BL3=<"bl3settings.ini" ) :: 判断读取到的路径是否有效 if not exist "%BL3%\OakGame\Content\Movies\" ( set BL3=C:\Program Files (x86)\Steam\steamapps\common\Borderlands 3 set /p BL3= 请输入无主之地3游戏安装目录 (默认路径: C:\Program Files (x86)\Steam\steamapps\common\Borderlands 3) = ) :: 确认是否删除加载动画 set errorlevel=0 choice /C YN /N /M "是否同时删除加载屏幕动画? (Y = 是 | N = 否)" echo 提示:如果还未缓存着色器,删除加载屏幕后启动游戏会出现一段时间黑屏 if '%errorlevel%'=='1' (set LD=yes) if '%errorlevel%'=='2' (set LD=no) echo. :: 保存有效路径到配置文件 echo 正在保存路径到配置文件以便后续使用... echo %BL3% >"bl3settings.ini" :: 执行动画删除 if exist "%BL3%\OakGame\Content\Movies\2KLOGO.mp4" del "%BL3%\OakGame\Content\Movies\2KLOGO.mp4" if exist "%BL3%\OakGame\Content\Movies\AMDLOGO.mp4" del "%BL3%\OakGame\Content\Movies\AMDLOGO.mp4" if exist "%BL3%\OakGame\Content\Movies\GBXLOGO.mp4" del "%BL3%\OakGame\Content\Movies\GBXLOGO.mp4" if '%LD%'=='yes' (if exist "%BL3%\OakGame\Content\Movies\Loading.mp4" del "%BL3%\OakGame\Content\Movies\Loading.mp4") :: 输出结果 if '%LD%'=='yes' (echo 操作完成!已删除2KLOGO.mp4、AMDLOGO.mp4、GBXLOGO.mp4和Loading.mp4) if '%LD%'=='no' (echo 操作完成!已删除2KLOGO.mp4、AMDLOGO.mp4和GBXLOGO.mp4) echo 以上文件会在无主之地3更新后被重新下载,下次更新后重新运行本脚本即可。 timeout /t 3 /nobreak>nul
关键实现说明
- 路径读取用
set /p 变量名=<配置文件路径的语法直接读取ini里存储的第一行路径内容 - 增加了路径有效性校验:判断读取到的路径下是否存在
OakGame\Content\Movies\目录,避免用户手动修改ini写入无效路径的问题 - 保留了默认路径兜底,用户直接回车即可使用默认的Steam版安装路径
内容的提问来源于stack exchange,提问作者Hetsig
相关产品推荐
相关产品推荐

