CLI 高级筛选 — --filter-by-name / --filter-by-container / 正则
三种筛选参数
| 参数 | 匹配对象 | 匹配方式 |
|---|---|---|
--filter-by-name | 资源名称 | 多个值用逗号分隔,每个值独立匹配;值以 ! 开头是排除;值以 ~ 开头是正则 |
--filter-by-container | 容器路径 | 同上 |
--filter-by-text | 名称或容器路径 | 匹配任一即可 |
多个筛选参数用 AND 组合——资源必须同时满足所有筛选条件才被保留。
基本匹配(Include)
导出名称里含 bgm 的音频:
AssetStudioModCLI <path> -t audio --filter-by-name bgm -o <output>
导出名称里含 music 或 voice 的音频:
AssetStudioModCLI <path> -t audio --filter-by-name music,voice -o <output>
注意逗号分隔是 OR 逻辑——资源名含任意一个关键词就保留。
排除匹配(Exclude)
导出所有音频但排除名称里含 test 的:
AssetStudioModCLI <path> -t audio --filter-by-name "!test" -o <output>
! 前缀表示"不包含"。可以同时加多个排除条件:
AssetStudioModCLI <path> -t audio --filter-by-name "!test,!demo" -o <output>
正则匹配
~ 前缀表示后面是正则表达式(.NET Regex 语法):
AssetStudioModCLI <path> -t sprite --filter-by-name "~char_\d+" -o <output>
这条命令导出所有名称匹配 char_ 加一个或多个数字的 Sprite(角色立绘常见命名)。
常用正则模式:
| 正则 | 效果 |
|---|---|
~bgm_\w+ | 名称以 bgm_ 开头后跟单词字符 |
~icon_\d{3,} | 名称以 icon_ 加 3 位以上数字 |
~^char_\d{2}_front$ | 精确匹配 char_01_front 这类 |
容器路径匹配
Container 是资源在 AssetBundle 里的逻辑路径。很多游戏按功能分目录组织容器路径,比如 assets/audio/bgm/stage01/。
导出容器路径里含 bgm 的音频:
AssetStudioModCLI <path> -t audio --filter-by-container bgm -o <output>
这条比 --filter-by-name bgm 准——因为很多游戏的 AudioClip 名称是 hash(比如 a1b2c3d4),但容器路径是语义化的。
多条件组合
导出容器路径含 char 且名称含 front 的 Sprite:
AssetStudioModCLI <path> -t sprite --filter-by-container char --filter-by-name front -o <output>
导出名称含 voice 且容器含 dialog 的音频:
AssetStudioModCLI <path> -t audio --filter-by-name voice --filter-by-container dialog -o <output>
--filter-by-text(名称或容器任一场合)
AssetStudioModCLI <path> -t sprite --filter-by-text hero -o <output>
这条导出名称里有 hero 或者容器路径里有 hero 的 Sprite——OR 逻辑,比单独用 name 或 container 范围更宽。