Friday, May 30, 2008

今回は、グローバル変数について説明したいと思います。

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

下記のスクリプトでグローバル変数のスコープをみて行きたいと思います。

#Scope5.ps1
01 $global:glb_a = 3
02
03 function funcA
04 {
05     Write-Host "2)$glb_a"
06 }
07
08 Write-Host "1)$a"
09 funcA
10 Write-Host "3)$a"

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

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

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

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

図をご覧いただければわかるように、Scope5.ps1実行後に、$glb_aを確認すると、スクリプト内部で設定した値"3"が表示されています。

コマンドラインでPowerShellに登録されている変数を確認してみましょう。

変数の一覧を確認するには dir variable: とします。

PS C:\Work> dir variable:

Name                           Value
----                           -----
Error                          {CommandNotFoundException, CommandNotFoundException}
DebugPreference                SilentlyContinue
PROFILE                        C:\Users\HIRO\Documents\WindowsPowerShell\Microsoft.P...
HOME                           C:\Users\HIRO
Host                           System.Management.Automation.Internal.Host.InternalHost
MaximumHistoryCount            64
MaximumAliasCount              4096
input                          System.Array+SZArrayEnumerator
StackTrace                        場所 System.Management.Automation.CommandDiscovery.L...
ReportErrorShowSource          1
ExecutionContext               System.Management.Automation.EngineIntrinsics
true                           True
VerbosePreference              SilentlyContinue
ShellId                        Microsoft.PowerShell
glb_a                          3
false                          False
:
:長いので省略
:

このようにグローバル変数は、一度作成するとPowerShell上で使用可能な変数となります。

また、グローバル変数は別のスクリプトファイル実行時にもスコープが及びますので、使用するときは注意が必要です。

Friday, May 30, 2008 2:26:13 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Comments are closed.

Theme design by Jelle Druyts

Pick a theme: