2010年11月28日日曜日

◆スコープ2

PowerShell: ◆スコープを書いた時には気付いていなかった方法があったので書いておく。

001
002
003
004
005
006
007
008
009
010
011
012

$a = 1
function fncA{
$a
$a
 += 1
}
function fncB{
$a
$a
 += 1
}
fncA
fncB
Write-Host
 $a

こんな風に書いたときC#などの感覚でいえば、$aはメンバー変数なので結果は1,2,3となっていくはずだ。
しかしPowershellの場合は以下のようになる。

20101128132910

これでは使いづらいので、functionにするのをためらいがちだった。
今日、偶然色々と試しているうちに良い方法を見つけた。
単にドットソースで呼んであげるだけで期待通りの結果になるのである。
(ドットソースは別スクリプトを取り込むものだとばかり思っていた・・・)

20101128133550

0 件のコメント:

コメントを投稿