Foreach循环容器中的SSIS执行进程任务:有选择地解压缩具有dateFilter变量值的文件

时间:2014-07-20 17:33:27

标签: ssis

请告知如何使Foreach Loop Contaiiner与Execute Process Task协调,以便在我的包用户变量user :: datePart = 2014-06-20时只解压缩2014-06-20文件。

源文件夹有4个zip文件,带有2个不同的时间戳(示例):

    2014-06-20_24632_1403294308_settings_publisher.txt.zip
    2014-06-20_24632_1403294309_settings_campaign.txt.zip
    2014-06-21_24632_1403294308_settings_publisher.txt
    2014-06-21_24632_1403294309_settings_campaign.txt

我尝试过的事情:

包变量user :: datePart设置为2014-06-20

foreach循环容器:

  • 集合Foreach文件Enumerater表达式:FileSpec = @ [User :: datePart] +" * .txt.zip"
  • collection文件夹:C:\ Users \ me \ Downloads \ MarinmultipleZipped Files:* .txt.zip
  • collection Files:* .txt.zip
  • collection检索文件名:完全限定
  • 变量映射我将User :: zippedFile设置为0

在foreach循环容器内部执行进程任务

  • 任务属性DelayValidation = True
  • 进程可执行文件= C:\ Program Files(x86)\ 7-Zip \ 7z.exe,
  • 表达式属性参数=" e" + @ [User :: zippedFile] +" " +" -C:\用户\我\下载\ TEST2"

当我运行它时,它看起来像是成功,但只有前两个文件是解压缩的,这无论时间戳是2014-06-20还是2014-06-21 - 这都很奇怪。

1 个答案:

答案 0 :(得分:0)

尝试删除' .txt'像这样的部分:

 collection Foreach File Enumerater expressions: FileSpec =@[User::datePart] +"*.zip"