PowerShellで外部のps1ファイルを読み込む方法

こんにちは。
けいぞうです。

PowerShellは簡単なスクリプトを開発するときに便利ですが、
時にはソコソコ規模の大きなものを開発するときもあります。

そういう場合に、処理を共通化させて、外部ファイルとして読み込んで使用することがよくあります。今回はその方法についての記事です。

PowerShellで外部ファイルを読み込む

サンプルスクリプト

引数として渡された「文字列」と「出力先ファイル名」を使ってテキストを出力する関数が書かれたファイルを読み込んで使用するサンプルスクリプトです。

■共通側(読み込まれるps1の方)

#第1引数:出力文字列
#第2引数:出力ファイルパス
function OutputLog([String]$str,[String]$path)
{
    Add-Content -Path $path -Value $str -Encoding UTF8
}

■呼び出し側のps1

.".\OutputLog"

OutputLog "カツカレー" "C:\work\Log\log.txt"
OutputLog "ハンバーグカレー" "C:\work\Log\log.txt"

■処理結果のログファイル

カツカレー
ハンバーグカレー

解説

外部のps1ファイルを読み込むには以下のように記述します。

.”外部ファイルのパス”

こんな感じで、「.(ドット) + “読み込みたいファイル”」でOKです。

サンプルスクリプトの場合は、実行ファイルと同じ場所にあるので、.”.\ファイル名”と記述しています。

呼び出される側で書いているログ出力については、方法はこれ以外にもあるので、下記参照。