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



请建议如何获得Foreach循环容器与执行进程任务协调,以便当我的包用户变量user::datePart = 2014-06-20时,只有2014-06-20文件被解压缩。

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

    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循环容器:

  • collection Foreach File Enumerater表达式:FileSpec =@[User::datePart] +"*.txt.zip"
  • collection Folder: C:UsersmeDownloadsMarinmultipleZipped Files: *.txt.zip
  • 收集文件:*.txt.zip
  • collection检索文件名:完全限定
  • 变量映射我设置User::zippedFile设置为0

在foreach循环容器内设置Execute Process Task

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

当我运行这个命令时,看起来成功了,但是只有前两个文件解压缩成功了,而且这与时间戳是2014-06-20还是2014-06-21无关——这很奇怪。

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

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

最新更新