Control-M高级文件传输:如何移除文件名中的'-eft-'片段
在Control-M高级文件传输中实现指定文件名片段移除
针对你需要将check-aft-eft-12345678-0001转换为check-aft12345678-0001(移除-eft-片段)的需求,以下是三种可行的实现方案:
方案1:精准字符串替换(最简方案)
适用于仅需移除固定-eft-片段且无其他同名片段干扰的场景:
- 打开Control-M文件传输作业的文件传输标签页
- 找到文件名转换规则区域,添加一条新规则
- 选择规则类型为查找替换
- 在「查找内容」框中输入:
-eft- - 在「替换内容」框中留空(不输入任何字符)
- 保存规则后,作业运行时会自动将源文件名中的
-eft-片段移除,直接得到目标格式。
方案2:正则表达式替换(精准匹配,避免误替换)
如果需要限定仅替换check-aft后的-eft-片段(防止其他文件名的误匹配),可以使用正则规则:
- 同样进入文件名转换规则设置,添加新规则并勾选使用正则表达式
- 「查找模式」输入:
(check-aft)-eft-(\d+-\d+) - 「替换模式」输入:
$1$2 - 该规则会精准匹配
check-aft-eft-后跟数字串+序号的格式,替换后保留check-aft与后续数字部分的直接衔接。
方案3:内置变量拼接(灵活适配复杂场景)
若Control-M版本支持字符串截取变量,可通过变量拼接生成目标文件名:
- 在目标文件名配置框中输入:
check-aft%%SUBSTR(%%SOURCE_FILENAME%%, 14, 13)%% - 逻辑说明:
%%SOURCE_FILENAME%%是Control-M内置变量,代表源文件名;SUBSTR函数从源文件名的第14位开始截取13个字符(对应12345678-0001部分),再与check-aft拼接得到目标文件名。
验证建议
完成规则配置后,优先在测试环境中运行作业,检查转换后的文件名是否符合预期,避免影响生产环境的文件传输流程。
内容的提问来源于stack exchange,提问作者Red Scofield
相关产品推荐
相关产品推荐

