从包含 ssis 中特定文本的文件夹中过滤文件名

filter filename from folder that contains a specific text in ssis

我正在尝试将一些文件从一个文件夹移动到另一个文件夹,我需要评估文件名是否包含特定文本然后我们只需要移动这些文件。

例如,我的文件夹中有以下文件。

abcd_takeme_fdsljker.txt
abcd_file_fdsljker.txt
abcd_takeme_fdsljsdfker.txt
abcd_filetk_fdsljker.txt
abcd_takeme_fdsljssker.txt

从上面我想选择包含文本 "takeme"

的文件

对每个循环容器使用

  1. 您必须添加一个 for-each 循环容器来循环特定目录中的文件。

  2. 选择以下表达式作为文件名:

    *takeme*

  3. 将文件名映射到变量

  4. 在 for each 循环中添加一个数据流任务来传输文件
  5. 使用文件名变量作为来源

您可以在以下位置关注详细文章:

如果您想添加多个过滤器,请按照我的回答进行操作:

使用脚本任务

或者您可以使用具有类似代码的脚本任务来实现此目的:(我使用了 VB.Net)

Public Sub Main()

    For Each strFile As String In IO.Directory.GetFiles("C:\New Folder\", "*takeme*", IO.SearchOption.AllDirectories)

        Dim filename As String = IO.Path.GetFileName(strFile)

        IO.File.Copy(strFile, "D:\New Folder\" & filename)

    Next

    Dts.TaskResult = ScriptResults.Success
End Sub