回数を多めにとってまとめておきます。
変数のスコープというと、C言語とかJavaだと、
for文とかif文の「{ }」内外で変数のスコープが変わるので云々、
ということでコード作成時に注意する必要がありました。
C言語の例は、こちらのサイトをご覧ください。
PowerShellの場合は、上記のような通常の制御構文の内外で、
変数のスコープが変わることはありません。
したがって、たとえばforループ内で宣言した変数を、
ループの外から普通に使用できたりもします。
作成例(制御構文とローカル変数の関係確認スクリプト):
#変数を消しておく Remove-Variable -Name a, b [string]$a = "A" if ( $true ) { $a = "a" $b = "b" } Write-Host ( '$a[{0}], $b[{1}]' -f $a, $b ) #出力 → $a[a], $b[b_inside_if] for ( $counter = 0; $counter -lt 10; $counter++ ) { $a += $counter.ToString() $c += $counter.ToString() } Write-Host ( '$a[{0}], $c:{1}' -f $a, $c ) #出力 → $a[a0123456789], $c[0123456789]
では、PowerShellにおけるスコープとは何ぞや、という事ですが、
実はスクリプトブロックや関数の間で、
どの変数が見えて、どの変数が見えないか、
という事を表現するための概念のようですが…
これについては、次回以降のエントリーで書きます。
参考サイト:
P's Members : スコープってなに?
参考コマンド:
Get-Help about_Scope
修正履歴:
0 件のコメント:
コメントを投稿