筛选包含 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. 在每个循环中添加数据流任务以传输文件
  5. 使用文件名变量作为源

您可以关注以下详细文章:

  • http://www.sqlis.com/sqlis/post/Looping-over-files-with-the-Foreach-Loop.aspx

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

  • 如何将多个文件扩展名添加到 File: Foreach 循环容器 SSIS 中的输入字段

使用脚本任务

或者,您可以使用具有类似代码的脚本任务来实现此目的:(我使用了 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

最新更新