我正在尝试将一些文件从一个文件夹移动到另一个文件夹,我需要评估文件名是否包含某些文本,那么我们只需要移动这些文件。
例如,我的文件夹中有以下文件。
abcd_takeme_fdsljker.txt
abcd_file_fdsljker.txt
abcd_takeme_fdsljsdfker.txt
abcd_filetk_fdsljker.txt
abcd_takeme_fdsljssker.txt
从上面我想选择具有文本"takeme"
的文件
使用 对于每个循环容器
-
您必须添加一个 for-each 循环容器来循环访问特定目录中的文件。
-
选择以下表达式作为文件名:
*takeme*
-
将文件名映射到变量
- 在每个循环中添加数据流任务以传输文件
- 使用文件名变量作为源
您可以关注以下详细文章:
- 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