今回は、グローバル変数について説明したいと思います。
グローバル変数を作成するには、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上で使用可能な変数となります。
また、グローバル変数は別のスクリプトファイル実行時にもスコープが及びますので、使用するときは注意が必要です。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail