从包含ssis

时间:2017-05-25 06:47:37

标签: sql-server ssis etl ssis-2012

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

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

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

从上面我想选择具有文本"takeme"

的文件

1 个答案:

答案 0 :(得分:0)

使用每个循环容器

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

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

    *takeme*

  3. 将文件名映射到变量

  4. 在每个循环内添加数据流任务以传输文件
  5. 使用filename变量作为源
  6. 您可以按照以下详细文章进行操作:

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

    使用脚本任务

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