Я немного запутался с официальной документацией о синтаксическом анализе .
Он начинается с введения двух режимов синтаксического анализа: выражения и аргумента (который, я считаю, также известен как команда),В режиме аргумента говорится, что:
В режиме аргумента каждое значение обрабатывается как расширяемая строка, если только оно не начинается с одного из следующих специальных символов: знак доллара ($
), взнак (@
), одинарная кавычка ('
), двойная кавычка ("
) или открывающая скобка ((
).Если перед ним стоит один из этих символов, значение обрабатывается как выражение значения.
И затем оно представляет собой аккуратную таблицу с несколькими примерами.
Последняя запись в таблице заставляет меня задуматься о предыдущих правилах.Разве аргумент командлета Write-Output
не должен интерпретироваться как выражение, поскольку он начинается со специального символа $
?
Я заметил, что если я напишу только выражение $a/H
, то оно будетпопытайтесь интерпретировать его как выражение (возвращая ошибку, поскольку H
отсутствует, но при использовании в контексте командлета он будет проанализирован как строка.
Может ли кто-нибудь помочь с интерпретациейрежимы разбора?