■このサイトはPowerShell(MSH/Monad)奮闘記です
管理人「newpops(吉岡洋)」が「PowerShell(旧名:MSH/Monad)」の研究結果を日々綴っていきます。
【お知らせ】
この日記からPowerShellのTipsを抽出し「PowerShell FAQ」として整理しました。
2005-11-09
■[MSH]スクリプトファイルのインクルード
汎用的な処理を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>



