【问题标题】:Powershell script to download either zip or csv用于下载 zip 或 csv 的 Powershell 脚本
【发布时间】:2019-11-13 16:00:54
【问题描述】:

我使用 ssis 运行一个 powershell 脚本来下载一个文件,该文件曾经是 csv,但最近变得大到可以压缩。我更新了 powershell 脚本以查找 zip 文件,并向包中添加了一个任务来解压缩文件,以便可以将其加载到 sql 数据库中。好吧,然后它再次以 csv 的形式出现。我需要一个解决方案来选择 zip 文件或 csv 文件。不确定这是否应该是 ssis 或更新的 powershell 中的任务。

【问题讨论】:

  • 到目前为止你的代码是什么样的?
  • 我有一个 ssis 包,它运行一个 powershell 脚本来下载文件,它看起来像这样blog.exsilio.com/all/…,然后是一个解压缩文件的任务,然后是一个将它加载到分贝
  • 这无助于澄清您的问题。您能否更具体地说明您正在做什么、什么不工作以及如何它不工作? (请记住,从本网站阅读您问题的参与者无法访问您的系统,也无法看到您的屏幕。)
  • 为什么没有两个选项的路径? zip 经过解压缩过程,而 csv 则直接加载

标签: powershell ssis


【解决方案1】:

我会使用 PS 任务来下载文件(zip/csv),然后使用 SSIS foreach 容器迭代您刚刚下载的文件。这样做您会将单个文件分配给用户变量。如果文件是 zip,则在容器内(使用通过表达式设置的变量来确定它是否为 zip)运行将运行 PS 解压缩的任务,然后运行表达式任务来更新保存文件路径的变量是新解压缩的 csv 路径。然后运行您的数据流任务以导入 csv。

如果文件一开始是 csv,则只需运行 DFT。

无论哪种方式数据流任务都是一样的,取csv并加载。我发现我喜欢将我的 PS 保存在 SSIS 包中,非常有目的。我倾向于在 PS 中构建我的逻辑,因为它更容易,但是我的包变得更难调试,因为我的 PS 脚本中的问题将使 SSIS 包失败,并且 SSIS 告诉我脚本中失败的内容没有任何用处。 (除非您从 PS 处理 stdout 和 stderr 的重定向,或进行其他一些日志记录) 最好根据需要执行的每项任务使 powershell 尽可能简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-04
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多