Powershell Array Strings - 在 SSIS 中映射不同的变量参数名称
Posted
技术标签:
【中文标题】Powershell Array Strings - 在 SSIS 中映射不同的变量参数名称【英文标题】:Powershell Array Strings - Mapping different variable parameter name in 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
方法获得的输出。并且,如前所述,进入下一个错误:在随机位置使用换行符破坏代码,错别字...
【参考方案1】:
答案是我创建了一个脚本来映射 CSV 文件中的变量。并从数组中保存第一列,与从数组中保存第二列相同。然后映射包和环境变量。
【讨论】:
以上是关于Powershell Array Strings - 在 SSIS 中映射不同的变量参数名称的主要内容,如果未能解决你的问题,请参考以下文章
Powershell:如果array1中的项目包含array2中的项目,我在这里做错了啥
hackrank Sorting Array of Strings
powershell 将 system.array 转换为数据表
将 Strings.xml 中的 String-Array 更改为 ArrayList
Powershell System.Array 到 CSV 文件
未完成 Given an array of strings, return all groups of strings that are anagrams.