使用SSIS表达式任务和文件系统任务,根据文件名将文件从一个文件夹移动到多个文件夹

时间:2018-03-06 12:40:25

标签: ssis

我有一个场景,我需要根据文件名将文件从一个文件夹移动到不同的文件夹。

示例:在主文件夹中,我有不同名称的文件,文件名中包含特定名称的所有文件应该进入不同的文件夹。

我创建了一个表达式任务和文件系统任务来实现相同的目的,但主文件夹中的所有文件都被删除但在相应的文件夹中不可用。

这是我在表达式任务中使用的表达式,基于该表达式设置目标文件夹。

!(ISNULL( FINDSTRING( @[User::FileName] , @[User::FileV2] , 1 ) )) ?    @[User::DestinationFolder] == @[User::Folder1] : !(ISNULL( FINDSTRING( @[User::FileName] , @[User::FileV3] , 1 ) ) )?    @[User::DestinationFolder] == @[User::Folder2] :!(ISNULL( FINDSTRING( @[User::FileName] ,  @[User::FilePlacement] , 1 ) )) ?    @[User::DestinationFolder] ==  @[User::Folder3] :  @[User::DestinationFolder] ==  @[User::Folder3]

让我知道如何做到这一点。

1 个答案:

答案 0 :(得分:0)

只有当搜索字符串或表达式为空时,Findstring才返回NULL,如果显示的话很可能在找不到时返回0,因此ISNULL将始终返回FALSE。

我建议使用> 0来测试条件,例如:

FINDSTRING( @[User::FileName] , @[User::FileV2] , 1 ) > 0 ...