创建Powershell阵列

时间:2018-11-13 19:57:37

标签: powershell

我是powershell的新手,正在尝试自动化复杂的过程。我需要将3列数据从一个电子表格复制并粘贴到第二个电子表格,然后将其逐行导出到SAP事务中。在搜索中,我找到了下面的链接,该链接讨论了如何使用$arr1 = @(0) * 20创建数组。我有两个问题。

第一个问题是(0)引用是什么?

此外,使用该公式如何引用创建数组所需的工作簿,工作表和列?任何帮助将不胜感激。

PowerShell array initialization

1 个答案:

答案 0 :(得分:0)

@()是数组文字(通常用于定义空或单元素数组) 您还可以使用列表对象(System.Collection.ArrayList),因为它具有动态大小,可能会更方便。

下面是一个带有COM对象的快速且肮脏的示例(将范围内的数据读取到数组列表中)

$excel= new-object -com excel.application

$excel.Visible = $false

$wb = $excel.workbooks.open("$home\Documents\book1.xlsx")

$ws = $wb.Sheets.Item("Sheet1")

$data = New-Object System.Collections.ArrayList

foreach ($i in 1..20){

$data.Add(  (New-Object PSObject -Property @{A=$ws.Range("A$i").Value2; B=$ws.Range("B$i").Value2})  )  | Out-Null

}

Write-Output $data

$wb.Close()