如何在SSIS Foreach Loop Container中使用通配符匹配特定结尾的CSV文件名
SSIS Foreach File Enumerator 匹配
*_names.csv无结果问题排查 以下是按出现概率从高到低排列的原因及解决方法:
- 文件名存在隐藏重复扩展名
这是最常见的触发原因。如果你的Windows资源管理器开启了「隐藏已知文件类型的扩展名」选项,你视觉上看到的
xxx_names.csv,实际真实文件名可能是xxx_names.csv.csv。此时*.csv可以正常匹配所有文件,但*_names.csv只能匹配到后缀前最后6位为_names的文件,自然无法命中带重复后缀的文件。
验证方法:在资源管理器顶部「查看」标签页勾选「文件扩展名」,确认目标文件的完整文件名是否符合*_names.csv的匹配规则。 - 通配符输入包含多余字符
SSIS的通配符输入框不会自动过滤无效字符,两种常见错误操作会导致匹配失败:- 输入时额外加了引号,填写的内容为
"*_names.csv",SSIS会直接匹配文件名包含双引号的文件 - 通配符前后意外输入了空格、换行等不可见字符
你可以直接删除原输入内容,重新手动输入*_names.csv测试。
- 输入时额外加了引号,填写的内容为
- 表达式配置错误
如果你是通过SSIS表达式动态生成通配符规则,检查表达式的输出结果是否为纯*_names.csv,有没有多余的拼接字符、转义符。
你使用PowerShell执行ls -file *_names.csv可以正常返回结果,说明文件本身命名符合匹配规则,优先排查前两类问题即可。
内容的提问来源于stack exchange,提问作者Nikul
相关产品推荐
相关产品推荐

