请建议如何获得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"