Я видел символ @, используемый в PowerShell для инициализации массивов. Что именно обозначает символ @ и где об этом подробнее?
syntax
powershell
GrahamMc
источник
источник
В PowerShell V2 @ также является оператором Splat .
источник
Хотя приведенные выше ответы дают большую часть ответа, полезно - даже так поздно, чтобы задать вопрос - дать полный ответ, а именно:
Подвыражение массива (см. About_arrays )
Заставляет значение быть массивом, даже если одноэлемент или ноль, например
$a = @(ps | where name -like 'foo')
Инициализатор хеша (см. About_hash_tables )
Инициализирует хеш-таблицу парами ключ-значение, например
$HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Сплаттинг (см. About_splatting )
Давайте вызовем командлет с параметрами из массива или хеш-таблицы, а не с более привычными индивидуально перечисляемыми параметрами, например, используя хеш-таблицу чуть выше,
Copy-Item @HashArguments
Здесь строки (см. About_quoting_rules )
Давайте создадим строки с легко встраиваемыми кавычками, обычно используемыми для многострочных строк, например:
Поскольку этот тип вопросов ( что означает обозначение «x» в PowerShell? ) Так часто встречается здесь, в StackOverflow, а также во многих комментариях читателей, я собрал словарь пунктуации PowerShell, только что опубликованный на Simple-Talk.com. Прочтите все о @, а также о% и # и $ _ и? и многое другое в Полном руководстве по пунктуации PowerShell . К статье прилагается эта настенная диаграмма, которая дает вам все на одном листе:
источник
Вы также можете обернуть вывод командлета (или конвейера),
@()
чтобы убедиться, что вы получите массив, а не отдельный элемент.Например, dir обычно возвращает список, но в зависимости от опций может возвращать один объект. Если вы планируете перебирать результаты с помощью объекта foreach, вам необходимо убедиться, что вы получили список обратно. Вот надуманный пример:
Еще одна вещь ... обозначен пустой массив (например, для инициализации переменной)
@()
.источник
Оператор Splatting
Чтобы создать массив, мы создаем переменную и назначаем массив. Массивы отмечены символом «@». Давайте возьмем вышеприведенное обсуждение и воспользуемся массивом для подключения к нескольким удаленным компьютерам:
Они используются для массивов и хэшей.
Учебник PowerShell 7: Накопление, вызов и изменение данных
Литералы массива в PowerShell
источник