スクリプトファイルでの引数(PowerShell 入門)で、Paramキーワードを使用した引数の受け取りについて説明しました。
実はParamキーワードを使用しなくても、実行時に引数を渡し、受け取ることができます。
それには、自動変数 $args を使用します。
下記は、スクリプト実行時に渡された引数の値をコンソールに表示するという簡単なスクリプトです。ExArgs1.ps1として保存してください。
Write-Host $args
このスクリプトを下記のようにして、実験してみましょう。
PS > ./ExArgs1.ps1 "HIRO" HIRO
実行時に渡した値は、$argsに代入されるので、結果として渡した値が表示されます。
実はこの$args変数は、複数の値を受け取ることが可能で、複数の値を受け取った場合は配列変数となります。
下記のスクリプトで実験してみましょう。ExArgs2.ps1として保存してください。
foreach ( $a in $args ) { Write-Host $a }
PS > ./ExArg2.ps1 "HIRO" "PowerShell" HIRO PowerShell
$args変数は複数の値を取得できることがおわかりいただけたでしょうか? このように、paramキーワードを使用しなくても値を受け取ることができます。
では、paramと$argsの2つを同時に使用したら、どうなるでしょうか?
下記のスクリプトで実験してみましょう。ExArgs3.ps1として保存してください。
param ($a) Write-Host ("Paramで受け取った値 " + $a) Write-Host ("`$argsで受け取った値 " + $args[0])
実行時に、ExArg3.ps1に値を一つだけ渡してみましょう。この結果は、下記の通りparamの引数$aに値を受け取っています。
PS > ./ExArg3.ps1 "HIRO" Paramで受け取った値 HIRO $argsで受け取った値
では実行時に、ExArg3.ps1に値を二つ渡した場合はどうなるでしょうか?この結果は、下記の通りでparamの引数$aには最初の値"HIRO"が、$argsにはParamで受けきれなかった値"PowerShell"が代入されます。
PS > ./ExArg3.ps1 "HIRO" "PowerShell" Paramで受け取った値 HIRO $argsで受け取った値 PowerShell
PowerShellでのparamと$argsの性質について理解しておくことをおすすめします。
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