[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】Powershell スクリプトの引数をオプション名で指定する



更新日:2021/04/14


Powershell スクリプトにおいてパラメータ名を使用して引数を指定する方法を紹介します。
例えばこのような使い方です。

test.ps1 -param abcde

paramと名前を指定して引数を取得する場合です。

サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。


Powershellではパラメータ名を指定して引数を設定することが可能です。
次の例では abc という名前のパラメータ名を指定してスクリプトに値を設定しています。
実際に test という引数を設定しています。

Param($abc)

により変数 $abc に値を設定しています。

C:\test\test1.ps1 -abc test


サンプルコード:


Param($abc)
write-host $abc



以下の例では入力値をチェックして動作を行います。入力値が"test"の場合、"正解"と表示します。

サンプルコード:


Param($abc)
write-host $abc

if ($abc -eq "test")
{
write-host "正解です"
}
else

{
write-host "不正解です"
}


複数個のパラメータを設定するサンプルコードは以下の通りです。

C:\temp100\test.ps1 -abc aaa -def bbb


サンプルコード:


Param($abc,$def)
write-host $abc
write-host $def




実行結果:



PS C:\> C:\test.ps1 -abc Str1 -def Str2
Str1
Str2


注意ですが、パラメータ名を指定しなくても、前から順番に評価されてしまいます。これを無効化するには [CmdletBinding(PositionalBinding = $false)] を追記します。

サンプルコード:


PS C:\> C:\test.ps1 -abc aaa -def bbb
aaa
bbb

PS C:\> C:\test.ps1 -def aaa -abc bbb
bbb
aaa

PS C:\> C:\test.ps1 aaa bbb
aaa
bbb







[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018