SSIS 通过替换部分文件名来重命名文件

SSIS Rename files by replacing part of filename

Remove the circled part of the filename

文件夹x中有两种类型的文件:\abc\sales\ 一个是压缩的 .gz 文件,另一个是未压缩的 .txt 文件 我的目标是重命名所有“.txt”文件:(保持 .gz 文件不变) 例如。 "accn_adjustments_201802020147.txt"

下划线后面的部分基本上是日期和时间,时间不一定是“0147”,也可能是“0148”或“0210”或其他任何东西,但总是4位数字... 我的任务是删除最后 4 位数字,以便最终结果看起来像 "accn_adjustments_20180202.txt"

我认为 for-each 循环或脚本任务可以帮助我解决这个问题,但我不知道该怎么做。

感谢任何帮助,在此先感谢...

步骤 1) 添加一个 Foreach Loop Container 到包中(将 Foreach Loop Container 从 SSIS 工具箱中的容器拖到包工作区)。

步骤 2) 双击 Foreach 循环打开编辑器

第三步)点击左侧菜单中的Collection,然后将Enumerator属性改为Foreach File Enumerator

第 4 步)选择您的文件夹:x:\abc\sales\

步骤 5) 将文件的 属性 更改为 *.txt

此外,您还需要:

第 6 步)将 File System Task 从工具箱拖到 Foreach Loop Container

步骤 7) 双击 File System Task 并将操作更改为 Rename File

第 8 步)在任务上设置源和目标连接(我假设您知道如何创建它们)。

现在容器将只循环访问文件夹中的文本文件。

这可以根据您的目的进行扩展,方法是使用变量、Foreach 循环的变量映射部分和表达式来动态修改文件名并更改文本文件数据源的连接 属性。虽然我不是 100% 清楚你还需要什么,但这至少应该回答这个问题让你开始。

一些有助于重命名过程的额外阅读:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6c6e4fba-be40-4c53-ab8e-348ccd39c687/rename-file-using-file-system-task-editor?forum=sqlintegrationservices