【问题标题】:Powershell Array Strings - Mapping different variable parameter name in SSISPowershell Array Strings - 在 SSIS 中映射不同的变量参数名称
【发布时间】:2020-03-08 11:35:25
【问题描述】:

我正在自动化 SSIS 部署。我想将参数映射到环境中的参数。包和环境中的参数具有不同的变量名称。示例如下

 $ParameterCount = 2          # Value will be coming from environment variable that is set
 $vPackage1 = "vId"           # Value will be coming from environment variable 
 $vEnvironment1 = "ApiId"     # Value will be coming from environment variable
 $vPackage2 = "vKey"          # Value will be coming from environment variable
 $vEnvironment2 = "ApiKey"    # Value will be coming from environment variable

 $vPackage = [System.Collections.ArrayList]@()
 $vEnvironment= [System.Collections.ArrayList]@()

 for ($i = 1; $i -le $(ParamterCount); $i += 1) {
      # This doesnt work!!!. I want to get the value of vPackage1 variable
      $vPackage[$i].Add($vPackage + $i)      

      # This doesnt work!!!. I want to get the value of vPackage2 variable
      $vEnvironment[$i].Add($vPackage + $i)         
 }

 # Then for deployment. I want to Map those two variables.
 $Counter = $Counter + 1
 $Package.Paramters[$vPackage[$Counter]]
     .Set([Microsoft.SqlServer.Management.IntegrationServices.ParameterInfo
     + ParameterValueType]::Referenced, $vEnvironment[$Counter])

我将使用 Bamboo 进行部署。上面所说的变量来自于 Bamboo 的变量。

我该如何处理?

【问题讨论】:

  • 脚本中有多个编码错误,例如实际 For 循环之前的 $ 符号,使其成为变量,而不是循环。请重新编译所有可能的编译错误并进行更新,因为修复它们太费时间了。谢谢。
  • 你有错字ParamterCount。不仅如此,而且你的循环是错误的:$for ($i = 1; $i -le $(ParamterCount); $i += 1) { 应该是for ($i = 1; $i -le $ParameterCount; $i++) {。接下来这根本没有意义:$vPackage[$i].Add($vPackage + $i).. 您正在将 Arraylist $vPackage 添加到 arraylist 本身(并尝试向其添加整数值 1)???。还有$Counter = Counter + 1 没有美元符号,而且名单还在继续……
  • 是的。我正在尝试获取 $vPackage1 的变量输出,即我只添加​​了 $vPackage + $i 来演示我的问题。 @Theo
  • $vPackage + $i 不会为您提供变量 $vPackage1 的名称或值。要获取具有构造名称的变量的值,请使用(Get-Variable -Name ('vPackage' + $i)).Value。接下来,您将使用$vPackage[$i].Add 遇到另一个异常。添加到 Arraylist 是在列表本身上,而不是在索引项上(顺便说一句,尚未创建),所以你应该在那里使用[void]$vPackage.Add。 ([void] 用于抑制您从Add 方法获得的输出。并且,如前所述,进入下一个错误:在随机位置使用换行符破坏代码,错别字...

标签: sql-server powershell ssis bamboo


【解决方案1】:

答案是我创建了一个脚本来映射 CSV 文件中的变量。并从数组中保存第一列,与从数组中保存第二列相同。然后映射包和环境变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    相关资源
    最近更新 更多