【问题标题】:How do i traverse files through folder using for loop container in SSIS如何在 SSIS 中使用 for 循环容器遍历文件夹中的文件
【发布时间】:2016-04-20 14:19:35
【问题描述】:

有很多使用 foreach 循环容器遍历文件夹的示例,但我想知道如何使用 For 循环容器 遍历文件 请帮帮我

【问题讨论】:

  • 想要使用 for 循环的动机是什么?
  • 欢迎来到 Stack Overflow。请参阅How to Ask,了解有关如何从您的问题中获得最佳回复的信息。例如,您应该添加您尝试做的具体事情以及您尝试做的事情遇到了什么麻烦。否则,您的问题对本网站的范围太广了。
  • @Kateract +1 为新用户提供一些礼貌的建议
  • 为什么要使用for循环?如果您想忽略某些文件,这更容易通过具有优先约束条件的表达式任务来完成。

标签: sql-server ssis ssis-2012 ssis-2008 msbi


【解决方案1】:

For 循环使用范围和计数器。如果您想使用 For 循环遍历文件夹中的文件,则必须使用脚本任务来计算文件夹中的文件数,并使用该数字填充变量。

然后您必须将计数器变量设置为 0,并将 For 循环设置为在计数器小于文件计数时运行,并在每次迭代时将计数器加 1。

在您的循环中,您需要通过文件夹中的索引获取文件,大概是在脚本任务中使用 FileSystemObject。

效率不是特别高,这就是为什么 ForEach 循环通常用于文件的原因。

【讨论】:

  • AFAIK for 循环只会在评估表达式为真时循环。它不需要增加任何东西。
  • 嗯,这是正确的,但是如果在这种情况下不增加计数器,for 循环将无限运行。我错过了什么吗?
  • 只是指出您根本不需要预先计算它们并使用索引来循环它们。它实际上可以是while(@MoreFilesToProcess),并且可以通过多种方式确定。例如。如果您将它们归档到其他地方,则文件夹不为空。
  • 确实如此,如果可以测试其他条件以确定何时停止循环,则无需计数器。在没有细节的情况下,我选择了我能想到的通用方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多