PowerShell, синтаксис справочной функции - PullRequest
1 голос
/ 14 апреля 2020

Изучая разницу между help и get-help Я сделал:

  1. cd Function:
  2. get-content help
  3. все входные параметры определяется как: [string]${Name}

$ = инициировать переменную, {} хеш-таблицу ??

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 14 апреля 2020

Официальную документацию см. В разделе about_Variables help topi c (вызовите его с помощью help about_Variables) и, в частности, в разделе "Имена переменных, которые включают специальные символы" .

Заключение имени переменной в {...} - например, ${foo} - однозначно разделяет имя переменной (foo).

Несмотря на то, что вы можете использовать эту нотацию с любой ссылкой на переменную, для этого необходимо в следующем сценарии ios:

  • Если имя содержит необычные символы , такие как - или . (точный набор допустимых символов см. В справке topi c); Например:

    • ${foo-bar}
    • ${foo.bar}
  • Если ссылка на переменную встроена в расширяемая строка ("...") , вам может потребоваться сообщить PowerShell, где заканчивается имя переменной , если сразу следующие символы будут интерпретироваться как часть имени переменной; Например:

    • "${foo}: bar" - без {...} PowerShell будет интерпретировать $foo: как (неполное) имя переменной, что приводит к ошибке, поскольку foo интерпретируется как имя дисковода PS в контексте нотации переменных пространства имен .

      • Примечание. Альтернативой в этом случае является ` -экранирование : символ: "$foo`: bar"
    • "A ${foo}l and his money ..." - без {...} PowerShell будет искать вместо переменной $fool.

Хотя в вашем примере (${Name}) включение в {...} является не необходимым, причина его использования заключается в том, что код был автоматически создан как прокси-функция , заключающая в себе командлет Get-Help, и этот механизм генерации методично включает все переменные в {...}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...