スクリプトファイルのインクルード

汎用的な処理を1つのスクリプトにまとめ、他のスクリプトから利用したい場合、
スクリプトファイルのインクルードができれば便利です。

「.(ドット)」+「 (スペース)」でインクルード

「.(ドット)」+「 (スペース)」に続けてスクリプトファイルを指定すると、
そのスクリプトファイルが実行され、定義されている関数を利用できるようになります。


より正確に言うと、「.(ドット)」+「 (スペース)」+「スクリプト」を実行すると、
指定した「スクリプト」の内容が、呼び出し元スクリプトに展開されるため、
スクリプト」で定義されたfunctionが呼び出し元スクリプトで利用可能になる訳です。


ちなみに、「.(ドット)」+「 (スペース)」なしで「スクリプト」を実行しても、
スクリプト」の内容は展開されないため、定義されている関数を呼び出すことはできません。

インクルードのサンプル

include.mshの内容確認
MSH C:\> get-content .\include.msh
function header()
{
@"
<html>
<head>
<title>$title</title>
</head>
"@
}
インクルード前は「header」関数は実行不可
MSH C:\> header
'header' is not recognized as a Cmdlet, function, operable program, or script file.
At line:1 char:6
+ header <<<<
「.(ドット)」+「 (スペース)」でインクルード
MSH C:\> . .\include.msh
「header」関数の呼び出しが可能
MSH C:\> header
<html>
<head>
<title></title>
</head>
変数を設定すると・・・
MSH C:\> $title = "MSH Memo"
MSH C:\> header
<html>
<head>
<title>MSH Memo</title>
</head>