Создание массива powershell - PullRequest
0 голосов
/ 13 ноября 2018

Я новичок в PowerShell и пытаюсь автоматизировать сложный процесс. Мне нужно скопировать и вставить 3 столбца данных из одной электронной таблицы во вторую, которая будет построчно экспортироваться в транзакцию SAP. В моем поиске я нашел ссылку ниже, в которой обсуждается использование $arr1 = @(0) * 20 для создания массива. У меня два вопроса.

Первый вопрос: что такое ссылка (0)?

Кроме того, используя эту формулу, как я могу ссылаться на книгу, лист и столбец, которые мне нужно использовать для создания массива? Любая помощь будет принята с благодарностью.

Инициализация массива PowerShell

1 Ответ

0 голосов
/ 15 ноября 2018

@ () - литерал массива (обычно используется для определения пустого массива или массива из одного элемента). Вы также можете использовать объект списка (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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...