Каков правильный синтаксис для массивов в powershell? - PullRequest
5 голосов
/ 19 января 2011

Example1:

Примечание 2. Также используется запятая, поэтому отдельные элементы в массиве {0, -30}

Example2:

Чтобы создать массив, мы создаем переменную и присваиваем массив.Массивы отмечены символом «@».Давайте рассмотрим приведенное выше и используем массив для подключения к нескольким удаленным компьютерам: $ strComputers = @ («Server1», «Server2», «Server3»)

Итак, какой из них правильный или какойэто разница?

Ответы [ 2 ]

13 голосов
/ 19 января 2011

В примере 2 используется синтаксис преобразования массива, который, например, позволяет рассматривать отдельный элемент как массив:

$myList = @("Hello")

По сути, он позволяет обрабатывать все, что находится между скобками, как массив, включая выходные данные других команд:

$myArray = @(Get-Process Excel)

В качестве альтернативы вы можете просто создать массив, указав список через запятую:

$myArray = "hello", "world", "again"

(фигурные скобки не нужны)

3 голосов
/ 19 января 2011

Вы также можете получить массив из одного элемента, добавив оператор, к одному значению:

[PS] C:\>$a = ,"Hello World"

[PS] C:\>$a.gettype()


IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array


[PS] C:\>$a.count

1
...