PowerShellが名前付きパラメーターの空の文字列を受け入れるようにするにはどうすればよいですか?

GaryT

PowerShellスクリプトを呼び出しています。

powershell.exe -file basic.ps1 -User ""

私は他のパラメータを持っています、これは少し骨抜きにされています。

PSスクリプトはパラメータを受け入れます:

[CmdLetBinding()]
param(
 [Parameter(Mandatory=$true)]
[AllowEmptyString()]
[string]$User = 't'
)

コマンドを実行すると、次のようになります。

パラメータ 'User'の引数がありません。タイプ 'System.String'のパラメーターを指定して、再試行してください。

私はAllowEmptyStringこれを可能にするだろうという仮定の下にありましたか?

FrodeF。

必須のパラメータが必要なようには思えません。必須にする場合は、入力が必要になり、デフォルト値が使用できなくなります。ただし、説明したエラーに戻りましょう。

属性は期待どおりに機能します。問題は、スクリプトをどのように呼び出すかです。次のコードを関数およびスクリプトとして試してみましょう。

[CmdLetBinding()]
param(
[Parameter(Mandatory=$true)]
[AllowEmptyString()]
[string]$User = 't'
)

"`$User has value '$user'. Is it null? $($user -eq $null). Type is $($user.GetType().Name)"

デモ:

#Inside a function
PS> t -User ""
$User has value ''. Is it null? False. Type is String

#Inside a script
PS> .\Untitled-5.ps1 -User ""
$User has value ''. Is it null? False. Type is String

#Running the following command from cmd
cmd> powershell.exe -file Untitled-5.ps1 -User "" 
$User has value ''. Is it null? False. Type is String

ただし、PowerShellセッションの最後の行を実行すると、PowerShellは文字列を解析するため、パラメーターの値は空(引用符なし)になります。

PS> powershell.exe -file Untitled-5.ps1 -User "" 
D:\Downloads\Untitled-5.ps1 : Missing an argument for parameter 'User'. Specify a parameter of type 'System.String' and
 try again.
    + CategoryInfo          : InvalidArgument: (:) [Untitled-5.ps1], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingArgument,Untitled-5.ps1

Powershell.exeは、PowerShellプロセス内で使用するためのものではありません。これを修正するには、PowerShellプロセス内で直接スクリプトを呼び出すか(2番目の例)、PowerShell.exe …cmd / run / cheduled task ++から実行するか(他の場所)、PSが引数を解析しないようにして、実際に引用符を入力します。 。

これは、引用符をエスケープすることで実行できます

PS> powershell -File Untitled-5.ps1 -User `"`"

またはを使用して --%

PS> powershell -File Untitled-5.ps1 --% -User ""

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

文字列の配列を受け入れるレールパラメータを取得するにはどうすればよいですか?

分類Dev

Powershellの名前付きのみのパラメーターを作成するにはどうすればよいですか?

分類Dev

フォームを送信したときに配列が作成されるように、ビューでパラメーターに名前を付けるにはどうすればよいですか?

分類Dev

PowerShellコマンドレットパラメーターがValueFromPipelineByPropertyNameを受け入れ、エイリアスがある場合、元のプロパティ名を取得するにはどうすればよいですか?

分類Dev

Python DataFrameを条件付きでセル内の部分的に名前が付けられた列にコピーするにはどうすればよいですか?

分類Dev

golangで任意のタイプの値を受け入れるマップパラメータを宣言するにはどうすればよいですか?

分類Dev

doxygenがC ++関数の名前のないパラメーターを誤解しないようにするにはどうすればよいですか?

分類Dev

MySQLクエリのNOTIN句に名前付きパラメータ値を指定するにはどうすればよいですか?

分類Dev

複数の名前付きパイプからメッセージを受信するにはどうすればよいですか?

分類Dev

キッチンの名前付きパラメーターをWindowsで機能させるにはどうすればよいですか?

分類Dev

Datagridview名をパラメーターとして受け入れるメソッドがあります。このDataグリッドビュー名を動的に作成するにはどうすればよいですか?

分類Dev

nftables(インターフェース名用)に名前付きの文字列セットを作成するにはどうすればよいですか?

分類Dev

任意のサイズを受け入れる2Dベクトルパラメータを宣言するにはどうすればよいですか?

分類Dev

文字列パラメータをパス付きのURLに送信するにはどうすればよいですか?

分類Dev

MVCにパラメーターのドットを受け入れさせるにはどうすればよいですか?

分類Dev

関数内のglmオブジェクトがパラメーター名ではなく入力変数名を受け取るようにするにはどうすればよいですか?

分類Dev

関数内の名前付きパラメーターにアクセスするにはどうすればよいですか?

分類Dev

Objective Cの文字列にパラメータを追加するにはどうすればよいですか?

分類Dev

「「+」を受け入れる位置パラメータが見つかりません」を修正するにはどうすればよいですか?

分類Dev

Restler GETリクエストで任意のクエリパラメータを受け入れるにはどうすればよいですか?

分類Dev

Perlで出力パラメータ配列とスカラーを受け入れるにはどうすればよいですか?

分類Dev

Vuelidateのバリデーターに「alphaNum」と文字dot( "。")を受け入れるように指示するにはどうすればよいですか?

分類Dev

Pandasデータフレームの列に1つの列だけで名前を付けるにはどうすればよいですか?

分類Dev

データフレームの列にある特定の重複する名前付き列を削除するにはどうすればよいですか?

分類Dev

Railsとミニテストで、モデルのPOST作成リクエストをシミュレートするときにパラメーターに名前を付けるにはどうすればよいですか?

分類Dev

interface {}パラメータを受け入れる関数は、参照によって呼び出される値をどのように更新できますか?

分類Dev

Get Requestのすべてのパラメーター名を(クエリ文字列から)取得するにはどうすればよいですか?

分類Dev

カリー化された関数パラメーターを受け入れる関数を定義するにはどうすればよいですか?

分類Dev

同じ名前でパラメータが異なる2つのJNIメソッドを実装するにはどうすればよいですか?

Related 関連記事

  1. 1

    文字列の配列を受け入れるレールパラメータを取得するにはどうすればよいですか?

  2. 2

    Powershellの名前付きのみのパラメーターを作成するにはどうすればよいですか?

  3. 3

    フォームを送信したときに配列が作成されるように、ビューでパラメーターに名前を付けるにはどうすればよいですか?

  4. 4

    PowerShellコマンドレットパラメーターがValueFromPipelineByPropertyNameを受け入れ、エイリアスがある場合、元のプロパティ名を取得するにはどうすればよいですか?

  5. 5

    Python DataFrameを条件付きでセル内の部分的に名前が付けられた列にコピーするにはどうすればよいですか?

  6. 6

    golangで任意のタイプの値を受け入れるマップパラメータを宣言するにはどうすればよいですか?

  7. 7

    doxygenがC ++関数の名前のないパラメーターを誤解しないようにするにはどうすればよいですか?

  8. 8

    MySQLクエリのNOTIN句に名前付きパラメータ値を指定するにはどうすればよいですか?

  9. 9

    複数の名前付きパイプからメッセージを受信するにはどうすればよいですか?

  10. 10

    キッチンの名前付きパラメーターをWindowsで機能させるにはどうすればよいですか?

  11. 11

    Datagridview名をパラメーターとして受け入れるメソッドがあります。このDataグリッドビュー名を動的に作成するにはどうすればよいですか?

  12. 12

    nftables(インターフェース名用)に名前付きの文字列セットを作成するにはどうすればよいですか?

  13. 13

    任意のサイズを受け入れる2Dベクトルパラメータを宣言するにはどうすればよいですか?

  14. 14

    文字列パラメータをパス付きのURLに送信するにはどうすればよいですか?

  15. 15

    MVCにパラメーターのドットを受け入れさせるにはどうすればよいですか?

  16. 16

    関数内のglmオブジェクトがパラメーター名ではなく入力変数名を受け取るようにするにはどうすればよいですか?

  17. 17

    関数内の名前付きパラメーターにアクセスするにはどうすればよいですか?

  18. 18

    Objective Cの文字列にパラメータを追加するにはどうすればよいですか?

  19. 19

    「「+」を受け入れる位置パラメータが見つかりません」を修正するにはどうすればよいですか?

  20. 20

    Restler GETリクエストで任意のクエリパラメータを受け入れるにはどうすればよいですか?

  21. 21

    Perlで出力パラメータ配列とスカラーを受け入れるにはどうすればよいですか?

  22. 22

    Vuelidateのバリデーターに「alphaNum」と文字dot( "。")を受け入れるように指示するにはどうすればよいですか?

  23. 23

    Pandasデータフレームの列に1つの列だけで名前を付けるにはどうすればよいですか?

  24. 24

    データフレームの列にある特定の重複する名前付き列を削除するにはどうすればよいですか?

  25. 25

    Railsとミニテストで、モデルのPOST作成リクエストをシミュレートするときにパラメーターに名前を付けるにはどうすればよいですか?

  26. 26

    interface {}パラメータを受け入れる関数は、参照によって呼び出される値をどのように更新できますか?

  27. 27

    Get Requestのすべてのパラメーター名を(クエリ文字列から)取得するにはどうすればよいですか?

  28. 28

    カリー化された関数パラメーターを受け入れる関数を定義するにはどうすればよいですか?

  29. 29

    同じ名前でパラメータが異なる2つのJNIメソッドを実装するにはどうすればよいですか?

ホットタグ

アーカイブ