MRが楽しい

MRやVRについて学習したことを書き残す

PowerShellでps1ファイルの実行で引数を受け取る

本日はPowerShellの小ネタ枠です。
PowerShellでps1ファイルの実行で引数を受け取る方法です。

ps1ファイルの実行で引数を受け取る

ps1ファイルの実行に受け取った引数は$Args[]に格納されます。

# 第一引数から第三引数までの内容を表示
Write-Host ($Args[0] + " " + $Args[1] + " " + $Args[2])

以下の第一引数の有無を確認して表示するサンプルスクリプトを作成しました。

# 1つ目の引数が空ならエラーを表示する
if([string]::IsNullorEmpty($Args[0]))
{
    Write-Host "Please enter an argument"
    return
}
# 引数をメッセージに表示する
Write-Host ("Argument is " + $Args[0])

引数があるときはメッセージに表示され、引数がないときはエラーメッセージを返します。

引数を対話形式で入力させる

スクリプトに以下の書式を設定することで対話形式での引数の入力を要求することができます。

Param(
	[parameter(mandatory)][型]変数名
)

learn.microsoft.com

以下のサンプルスクリプトを作成しました。

# 1つ目の引数を要求する
# 引数を指定していなかった場合は対話形式で入力を要求する
Param(
	[parameter(mandatory)][String]$argment01
)
# 引数をメッセージに表示する
Write-Host ("Argument is " + $argment01)

引数を指定していない場合に対話形式で引数の入力が要求されます。
また対話形式の入力でも引数を入力しない場合はエラーが発生します。