You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从批处理变量的Mod列表提取文件夹名并自动生成校验逻辑

自动提取Mod列表并生成存在性校验的批处理方案

实现思路

  1. 从Antistasi2变量中剥离出-mod=后缀的Mod路径集合
  2. 按分号;分割每个独立的Mod路径项
  3. 从每个路径中提取出@开头的Mod文件夹名
  4. 循环遍历所有提取到的Mod名,自动生成并执行存在性检查语句

完整批处理代码

@echo off
setlocal enabledelayedexpansion

:: 若需从launcher.bat导入Antistasi2变量,可添加call launcher.bat
:: set Antistasi2=-mod=%ModPath%@CBA_A3;%ModPath%@Antistasi;%ModPath%@CAC_AE1.4;%ModPath%@AWR;%ModPath%@RealEngine;%ModPath%@ace;%ModPath%@EnhancedMovement;%ModPath%@EnhancedMovementRework;%ModPath%@MfHealAbort;%ModPath%@VET_Unflipping;%ModPath%@AdvancedRappelling;%ModPath%@AdvancedUrbanRappelling;%ModPath%@Blastcore

:: 提取-mod=之后的所有内容
set "mod_list=!Antistasi2:-mod=!"

:: 遍历分割后的每个Mod路径
for %%i in ("!mod_list:;=" "!") do (
    :: 提取@开头的Mod文件夹名(移除%ModPath%前缀)
    set "mod_folder=%%~i"
    set "mod_folder=!mod_folder:%ModPath%=!"
    :: 执行存在性检查
    if not exist "%ModPath%!mod_folder!" echo !mod_folder! NOT FOUND
)

endlocal

代码说明

  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环内部变量能实时更新
  • !Antistasi2:-mod=!:移除变量开头的-mod=字符串,得到纯Mod路径集合
  • !mod_list:;=" "!:将分号分隔的路径转换为带引号的列表,让for循环能逐个读取
  • !mod_folder:%ModPath%=!:移除每个路径中的%ModPath%前缀,得到纯Mod文件夹名(如@CBA_A3)
  • 最后通过if not exist语句检查每个Mod文件夹是否存在,不存在则输出提示

注意事项

  • 确保%ModPath%变量已正确定义且末尾无多余斜杠
  • 如果需要从launcher.bat中导入Antistasi2变量,可在代码开头添加call launcher.bat

内容的提问来源于stack exchange,提问作者Batch N00b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:35:02