問題タブ [parameter-sets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
121 参照

powershell - パラメータの依存関係を設定する方法

これまで、PowerShell スクリプトでパラメーター セットを多かれ少なかれ回避していました。これは、非常に冗長で複雑な依存関係を実装するのが非常に難しいためです。
StackOverflow には同様の質問と回答がいくつかありますが、状況に応じて許容できる解決策または回避策を見つけることができます。実際のスクリプトはさらに複雑ですが、これは私が行き詰まった場合です。

パラメータの規則:

  • 少なくとも 1 つのParam#( Param1Param2またはParam3) パラメータを指定する必要があります
  • 1 つのParam#( Param1Param2またはParam3) パラメータのみを指定できます
  • スイッチ (Switch1および) はオプションであり、 orパラメーターSwitch2でのみ指定できます (一方または両方)。Param1Param2

次のコマンドはエラーを生成する必要があることを意味します。

そして、次のコマンドを受け入れる必要があります。

問題は次のコマンドにあります。

予期しないエラーが発生します。

これは、パラメーターのスローメッセージをどのように変更しますか?で@mklement0が言及したこの github の問題に関連していると思います。.

しかし、パラメーターセットを使用してこれを適切に解決または回避するにはどうすればよいですか?

0 投票する
1 に答える
50 参照

powershell - Powershell - パラメータ セット

私はこのパラメータを持つ関数を持っています:

私は次のことを達成しようとしています:

-SendMail を呼び出すとき、パラメーターは必須ではありません -UseRegions を呼び出すとき、-Region は必須であり、残りは必須ではありません。-UseRegions を呼び出さない場合、-Country は必須で、残りは必須ではありません。

パラメータセットで遊んでいますが、解決できません。また、-UseCountry という追加のパラメーターを使用したくありません。-Region と -Country の両方を制御するために -UseRegions が必要です。

誰かがそれのようなものを持っていましたか?

事前にどうもありがとう!!!!

0 投票する
3 に答える
396 参照

powershell - 他のパラメーターの特定の組み合わせでパラメーターをパイプするときに「パラメーター セットを解決できません」

4 つのパラメーターと 4 つのパラメーター セットを使用する関数を作成しました。最初のパラメーター$Pathはセットに割り当てられていないため、すべてのセットに属します。これも必須であり、パイプラインから渡すことができる唯一のパラメーターです。ただし、パイプラインの最後で関数を呼び出すときに、他の 3 つのパラメーターの特定の組み合わせ (これらはすべて、4 つのセットの組み合わせに属します) を使用してこれを行うと、セットがあいまいであることを示すエラーが発生します。

これが私の機能です:

パラメータのすべての可能な組み合わせは次のとおりです。

パイプラインのみで $Path を渡すか、これらの他のパラメーターの組み合わせを使用して渡すと、正常に機能します。

ただし、次の 2 つの組み合わせはエラーになります。

これらの結果の最大の違いは$OutputToConsole、両方のセットでオプションである唯一のパラメーターであるようです。必須パラメーターをパイプすると、それ自体が必須になるようです。一方、最も紛らわしい結果には が含ま$OutputModeれます。これは、両方のセットが排他的に必須のパラメーターの異なる組み合わせを使用するためです。$Pathと の両方を使用するとセット B が発生し$OutputMode、それだけです。では、"C:\Test.jpg" | Foo-Bar -OutputMode 1なぜあいまいと見なされているのでしょうか。

私のためにこれに光を当てることができる人にとても感謝しています.