関数のスコープについて参考にしたページの外部参照方法の記事に、「$myInvocation」を使った相対パス取得あったので、メモしとく。
--- ScopeTest00.ps1 ---
$cnt = 0
Write-Debug $cnt
# 直接実行する
. ((Split-Path $myInvocation.MyCommand.path) + '\ScopeTest01.ps1')
Write-Debug $cnt
# 直接実行する 配列を使う
. (@(Split-Path $myInvocation.MyCommand.path) + '\ScopeTest01.ps1')
Write-Debug $cnt
# 変数に代入して実行する
$CurrentPath = Split-Path ($myInvocation.MyCommand.path)
$CommandPath = $CurrentPath + "\ScopeTest01.ps1"
. $CommandPath
Write-Debug $cnt
$CommandPath = $CurrentPath + "\ScopeTest02.ps1"
. $CommandPath
Write-Debug $cnt
--- ScopeTest01.ps1 ---
$cnt++
--- ScopeTest02.ps1 ---
---- 実行結果 ---
デバッグ: 0
デバッグ: 1
デバッグ: 2
デバッグ: 3
デバッグ: 13
「$myInvocation」には、MethodとPropertyが結構ある。
$MyInvocation | Get-Memberで、取得できる。
本日の河上選手:おやすみ
8/9~ 平和島