将文件移动到子文件夹ssis包

时间:2018-05-22 23:36:42

标签: sql-server ssis etl ssis-2012

我创建了一个ssis包来将备份文件从c:location移动到E位置:

source file path: C:\Backup\A\xxx.bak
destination file path: E:\DB Backups\A\xxx.bak

我使用了foreachloop容器并创建了两个变量:sourcefileVdestinationV,并使用文件系统任务重命名文件。但是,在将文件移动到目标文件后,该程序包可以运行,该文件不在E:\DB Backups\A的子文件夹E:\DB Backups中。我必须手动剪切并将其移动到子文件夹。有没有办法直接将文件移动到ssis包中的目标子文件夹?

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以创建两个变量@[User::DestinationFolder]@[User::SourceFolder]

@[User::SourceFolder] = C:\Backup\
@[User::DestinationFolder] = E:\DB Backups\

您可以使用以下表达式创建目标文件夹路径。

@[User::DestinationFolder] +  SUBSTRING(REPLACE(@[User::SourceFileV],@[User::SourceFolder],""),1, LEN(REPLACE(@[User::SourceFileV],@[User::SourceFolder],"")) - FINDSTRING(REVERSE(@[User::SourceFileV]),"\\",1))

您可以使用以下表达式来获取目标文件路径

@[User::DestinationFolder] + REPLACE(@[User::SourceFileV],@[User::SourceFolder],"")

首先,您必须添加Execute File System Task来创建目标目录。然后,您必须添加第二个Execute File System Task来复制文件。