PowerShellでpythonの「if __name__ == “__main__”:」のような直接と参照実行でコードを分ける

PowerShell コンピュータ
PowerShell

pythonでスクリプトで定義した関数を別のスクリプトで参照する場合、以下のようなコードを記述します。

if __name__ == "__main__":
    // 直接実行の場合実行されるコード

PowerShellで同じようなことが出来ないか調べてみました。
構文は以下の様になります。

if ($MyInvocation.InvocationName -ne '.') {
    # このスクリプトが直接実行された場合の処理をこちらのブロックを記述します。
    Write-Host "このスクリプトは直接実行されました。"
}

ps1スクリプトを直接実行すると$MyInvocation.InvocationNameは実行したスクリプトのパスがセットされます。
他のスクリプトから”. <スクリプト名>”形式で参照した場合$MyInvocation.InvocationNameには”.”がセットされます。こちらの特性を利用して直接実行と参照実行でコードを分けることが出来ました。

コメント