Как получить все аргументы, переданные функции (по сравнению с необязательными только $args)

$args возвращает только необязательные аргументы. Как я могу получить все функциональные параметры?

Ответы

Ответ 1

$args возвращает любые необъявленные параметры, а не необязательные параметры. Поэтому просто не объявляйте параметры.

В PowerShell v2 вы можете использовать $PSBoundParameters для получения всех параметров структурированным способом.

Ответ 2

$PSBoundParameters получает все параметры, которые были "привязаны" вместе со связанными значениями в хеш-таблице, но не дает вам необязательных/дополнительных аргументов. Для этого нужны $args. AFAICT единственный способ получить то, что вы хотите, это совместить два:

$allArgs = $PsBoundParameters.Values + $args