Skip to content

Instantly share code, notes, and snippets.

@TAKA-SHU
Created July 13, 2020 09:53
Show Gist options
  • Save TAKA-SHU/089523cbdfec97f170fa6c63314c3848 to your computer and use it in GitHub Desktop.
Save TAKA-SHU/089523cbdfec97f170fa6c63314c3848 to your computer and use it in GitHub Desktop.
PowerShellのFunctionを作成するときのテンプレート
function <FunctionName>
{
#Update:yyyy/MM/dd
param(
#関数のパラメーターを指定
##基本構文
[Parameter(<関数のパラメーターを指定>)]
[<(型)string/int/bool/swith(配列型にするのであれば"[]"を付ける)>]
$<パラメーター名(デフォルト値を指定するのであれば"=<デフォルト値>"を付ける)>,
###関数のパラメーター一覧
Position = 整数 :パラメータの設定する位置を指定。
Mandatory = $True :必須指定オプションの場合に$Trueを指定。
ValueFromPipeline = $True :パイプラインから流れてきたオブジェクトそのものを使用できるようにする場合に指定。
ValueFromPipelineByPropertyName = $True :パイプラインから流れてきたオブジェクトの持つプロパティとパラメータをバインドする場合に指定。
ParameterSetName = パラメータセット名 :パラメータセット名を指定。省略時は、全パラメータセットに含まれると見なされる。
HelpMessage = 説明メッセージ :パラメータの説明メッセージを指定。
##例1(パイプラインを許可、必須、string型、パラメーター名:Text)
[Parameter(ValueFromPipeline=$true,Mandatory=$true)]
[string[]]
$Text,
##例2(関数のパラメーターは無し、int型、パラメーター名:Count、デフォルト値:2)
[int]
$Count=2
)
begin
{
#パイプラインで連携した際、最初の1回だけ実行される初期化処理
}
process
{
#パイプラインから入力された1つのオブジェクトに対してその都度実行される処理
##例($Textに入力された値を$Countの回数分繰り返す)
foreach($s in $Text)
{
$s * $Count
}
}
end
{
#最後の1回だけ実行される後始末処理
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment