【PowerShell】別のps1ファイルを実行する方法


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

PowerShellで、別のPowerShellスクリプトファイル(ps1)を実行する方法を解説します。

はじめに

本記事では、特定のPowerShellスクリプトファイルから、別のPowerShellスクリプトファイルを呼び出す方法を解説します。

今回使用するPowerShellスクリプトファイル名は下記とします。

  • 親スクリプト(呼び出す側):parent.ps1
  • 子スクリプト(呼び出される側):child.ps1

実行するスクリプトが同じフォルダにある場合

ここでは、子スクリプト(呼び出される側)が、
親スクリプト(呼び出す側)と同じフォルダにある場合の呼び出し方を説明します。

相対パスで指定する

実行するファイルを相対パスで指定する場合は、以下のように記述します(赤字部分)

parent.ps1
Write-Host "親スクリプトの実行開始"

# 子スクリプトの呼び出し
. .\child.ps1

Write-Host "親スクリプトの実行終了"
child.ps1
Write-Host "子スクリプトの実行開始"
Write-Host "子スクリプトの実行終了"

実行結果です。
親スクリプトの開始と終了の間に、子スクリプトが呼び出されていることが分かります。

PS C:\workspace\PowerShell> .\parent.ps1
親スクリプトの実行開始
子スクリプトの実行開始
子スクリプトの実行終了
親スクリプトの実行終了

絶対パスで指定する

実行するファイルを絶対パスで指定する場合は、以下のように記述します(赤字部分)

parent.ps1
Write-Host "親スクリプトの実行開始"

# 子スクリプトの呼び出し
. C:\workspace\PowerShell\child.ps1

Write-Host "親スクリプトの実行終了"
child.ps1
Write-Host "子スクリプトの実行開始"
Write-Host "子スクリプトの実行終了"

実行結果です。
親スクリプトの開始と終了の間に、子スクリプトが呼び出されていることが分かります。

PS C:\workspace\PowerShell> .\parent.ps1
親スクリプトの実行開始
子スクリプトの実行開始
子スクリプトの実行終了
親スクリプトの実行終了

実行するスクリプトが異なるフォルダにある場合

ここでは、子スクリプト(呼び出される側)が、
親スクリプト(呼び出す側)と別のフォルダにある場合の呼び出し方を説明します。

フォルダの構成は以下の通りです。

  • 親スクリプト:C:\workspace\PowerShell\parent.ps1
  • 子スクリプト:C:\workspace\PowerShell\Folder\child.ps1

相対パスで指定する

実行するファイルを相対パスで指定する場合は、以下のように記述します(赤字部分)

parent.ps1
Write-Host "親スクリプトの実行開始"

# 子スクリプトの呼び出し
. .\Folder\child.ps1

Write-Host "親スクリプトの実行終了"
child.ps1
Write-Host "子スクリプトの実行開始"
Write-Host "子スクリプトの実行終了"

実行結果です。
親スクリプトの開始と終了の間に、子スクリプトが呼び出されていることが分かります。

PS C:\workspace\PowerShell> .\parent.ps1
親スクリプトの実行開始
子スクリプトの実行開始
子スクリプトの実行終了
親スクリプトの実行終了

絶対パスで指定する

実行するファイルを絶対パスで指定する場合は、以下のように記述します(赤字部分)

parent.ps1
Write-Host "親スクリプトの実行開始"

# 子スクリプトの呼び出し
. C:\workspace\PowerShell\Folder\child.ps1

Write-Host "親スクリプトの実行終了"
child.ps1
Write-Host "子スクリプトの実行開始"
Write-Host "子スクリプトの実行終了"

実行結果です。
親スクリプトの開始と終了の間に、子スクリプトが呼び出されていることが分かります。

PS C:\workspace\PowerShell> .\parent.ps1
親スクリプトの実行開始
子スクリプトの実行開始
子スクリプトの実行終了
親スクリプトの実行終了

コメント

タイトルとURLをコピーしました