Что делает, символ делает в Powershell?

Достаточно просто написать собственную функцию сравнения:

function compare(a,b) {
  if (a.last_nom < b.last_nom)
    return -1;
  if (a.last_nom > b.last_nom)
    return 1;
  return 0;
}

objs.sort(compare);

Или встроенный (c / o Marco Demaio):

objs.sort(function(a,b) {return (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) ? -1 : 0);} ); 
102
задан GrahamMc 12 December 2008 в 19:32
поделиться

4 ответа

PowerShell будет на самом деле рассматривать любой разделенный запятыми список как массив:

"server1","server2"

Так является дополнительным в тех случаях. Однако для ассоциативных массивов, требуется:

@{"Key"="Value";"Key2"="Value2"}

Официально, "оператор массива". Можно читать больше об этом в документации, которая установила наряду с PowerShell, или в книге как "Windows PowerShell: TFM", который я создал в соавторстве.

73
ответ дан TylerH 5 November 2019 в 11:29
поделиться

Оператор

Splatting Для создания массива мы создаем переменную и присваиваем массив. Массивы отмечены символ. Давайте возьмем обсуждение выше и давайте использовать массив для соединения с несколькими удаленными компьютерами:

$strComputers = @("Server1", "Server2", "Server3")<enter>

Они используются для массивов и хешей.

Учебное руководство 7 PowerShell: Накопитесь, Отзыв, и Измените Данные

Литералы массивов В PowerShell

8
ответ дан TylerH 5 November 2019 в 11:29
поделиться

В PowerShell V2, также оператор .

PS> # First use it to create a hashtable of parameters:
PS> $params = @{path = "c:\temp"; Recurse= $true}
PS> # Then use it to SPLAT the parameters - which is to say to expand a hash table 
PS> # into a set of command line parameters.
PS> dir @params
PS> # That was the equivalent of:
PS> dir -Path c:\temp -Recurse:$true
Splat
111
ответ дан user2368632 5 November 2019 в 11:29
поделиться

Можно также обернуть вывод cmdlet (или конвейер) в @(), чтобы гарантировать, что то, что Вы возвращаете, является массивом, а не единственным объектом.

, Например, dir обычно возвращает список, но в зависимости от опций, он мог бы возвратить отдельный объект. Если Вы - планирование итерации через результаты с foreach-объектом, необходимо удостовериться, что Вы возвращаете список. Вот изобретенный пример:

$results = @( dir c:\autoexec.bat)

Еще одна вещь... пустой массив (любят инициализировать переменную) обозначен @().

27
ответ дан TylerH 5 November 2019 в 11:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: