CodeZine(コードジン)

特集ページ一覧

Windows PowerShell 入門(8)-関数編3

フィルタ、スクリプトブロック、変数のスコープ

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/08/08 14:00

目次

グローバルスコープ

 最後にグローバルスコープを持つ変数について説明したいと思います。グローバル変数は、スクリプトファイルを超えてスコープを持つ変数です。

 下記スクリプトで実験してみたいと思います。

Scope5.ps1
$global:glb_a = 3

function funcA
{
    Write-Host "2)$glb_a"
}

Write-Host "1)$glb_a"
funcA
Write-Host "3)$glb_a"

 グローバル変数を作成するには、1行目のようにglobal修飾子を使用します。

 このスクリプトの実行結果は下記の通りです。

PS C:\Work> ./scope5.ps1
1)3
2)3
3)3

 スクリプト内で$glb_aというグローバル変数を作成しました。最初に説明したように、グローバル変数はスクリプトファイルを超えてスコープを持つので、スクリプトの実行後にコマンドラインで変数を参照することが可能です。

PS C:\Work> $glb_a
3

 ではグローバル変数のスコープを図で見てみましょう。

 

 グローバル変数のスコープは、「Scope5.ps1」が呼び出された後(水色の矢印)スクリプトが終わるまで有効です。

 さらに、スクリプトが終了し、コンソールウィンドウに戻った後(赤の点線)もグローバル変数は生存し続けます。

 結果として、コマンドラインで$glb_aを確認できたというわけです。

まとめ

 今回は、次の3点について説明しました。

  • フィルタ
  • スクリプトブロック
  • 変数のスコープ

 変数のスコープは説明が長くなってしまいましたが、スクリプト開発を行う上で非常に重要な概念ですので、ぜひ覚えてもらいたいと思います。

 次回は、エラーの取り扱いについて説明します。

お知らせ
 2008/7/7に「PowerShell from Japan!!」というサイトをオープンしました。「日本でPowerShellの情報を得るならここ」というサイトを目指し、有志メンバーによってはじめたものです。入門から実際の開発に役立つ情報まで幅広く取り扱っていきますので、ぜひ見に来てください。
PowerShell from Japan!! メンバー一同お待ちしております。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Windows PowerShell 入門

もっと読む

著者プロフィール

  • HIRO(ヒロ)

    HIRO's.NETのHIROです。 とある半導体工場のSEです。 VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。 最近はBlog でPowerShellについて書いています。 2008/07/07にPowerShell from Japan!!という...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5