web-dev-qa-db-ja.com

すべての引数を関数に渡す方法(vs.オプションのみ$ args)

$ argsは、オプションの引数のみを返します。すべての関数パラメーターを取得するにはどうすればよいですか?

24
alex2k8

$ argsは、オプションのパラメーターではなく、任意の宣言されていないパラメーターを返します。したがって、パラメータを宣言しないでください。

PowerShell v2では、$ PSBoundParametersを使用して、構造化された方法ですべてのパラメーターを取得できます。

23
JasonMArcher

$ PSBoundParametersは、ハッシュテーブル内のバインドされた値とともに「バインドされた」すべてのパラメーターを取得します。オプション/追加の引数は取得しません。それが$ argsの目的です。 AFAICTは、必要なものを取得する唯一の方法は、次の2つを組み合わせることです。

$allArgs = $PsBoundParameters.Values + $args
28
Keith Hill