文本与文件
替换文件中的指定字符
直接替换文本文件中的目标字符或字符串,可选忽略大小写和实时落盘,适用于改名、状态回写和批量文本修正。
命令用途
StringsReplace 用于直接在指定文本文件中查找目标内容,并替换为新的字符串。
它适合处理文件级文本修正,例如角色改名后批量替换旧名、把状态字段从“未领取”改成“已领取”,或修正某个文本文件中的固定片段。
命令名
StringsReplace
调用格式
StringsReplace <文件路径> <原字符> <新字符> <是否忽略大小写> [HardDisk]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
文件路径 | 是 | 目标文本文件路径。 |
原字符 | 是 | 需要在文件中查找并替换的旧文本。 |
新字符 | 是 | 用于替换原字符的新文本。 |
是否忽略大小写 | 是 | 0 表示不忽略大小写,1 表示忽略大小写。 |
HardDisk | 否 | 实时操作硬盘文件。直接读写文本会明显增加性能开销。 |
返回或影响
- 该命令会把目标文件中匹配到的文本替换为新内容。
- 它不是条件判断命令,不直接返回成功或失败分支结果。
- 带
HardDisk时,会直接对物理文件执行替换。 - 这类文件级替换命令比内存模式更重,频繁调用会明显拖慢引擎处理速度。
示例
基础用法
#ACT
StringsReplace ..\QuestDiary\rename.txt <$PARAMSTR(1)> <$PARAMSTR(2)> 0 HardDisk
这段写法会把 rename.txt 中的旧角色名替换成新角色名,适合改名系统同步修正外部文本记录。
常见变体
#ACT
StringsReplace ..\QuestDiary\安抚系统\安抚数据分析.ini <$USERNAME>|<$PARAM(3)>|<$STR(S15)>|未领取 <$USERNAME>|<$PARAM(3)>|<$STR(S15)>|已领取 1 HardDisk
这段写法会把文件中的状态字段从“未领取”替换成“已领取”,并忽略大小写后直接写回硬盘,适合状态流转和一次性奖励回写。
注意事项
StringsReplace是文件级替换,适合改持久化文本,不适合代替内存字符串处理的 StringReplace。HardDisk模式会显著拉低性能,只有确实需要立刻落盘时才建议使用。- 如果原字符在文件中出现多次,执行后可能会影响多个位置,使用前应先确认文件内容结构。
