2016-08-01

[PowerShell] 変数に変数を使う

PowerShellだけでなく、どんなプログラムでも変数は必ず使用します。

PowerShellでは事前の宣言なく使用できる変数ですが、時折、連番で変数を取りたい場合があります。

(例)
$hensu01
$hensu02
$hensu03
$hensu04
  …

今回は上記のような「変数を連番で取る方法」をご紹介します。

以下、スクリプトです。
For ( $i = 1 ; $i -lt 10 ; $i++)
{
    # testで始まる連番の変数を作成する
    Set-Variable -Name ("test0" + $i) -Value ($i)
}

# 作成したtestが付く変数を全て取得する
Get-Variable -Name test*
上記内容をコピーし、PowerShell ISEに貼り付け後、実行するとコンソール部分に作成した変数が表示されるはずです。

続いて解説をしていきます。



* * * * * 解説 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
For文の記述方法については説明不要だと思いますので割愛いたします。

# testで始まる連番の変数を作成する
Set-Variable -Name ("test0" + $i) -Value ($i)
ここで変数を作成しています。
変数を作成するにはSet-Variableコマンドレットを使用します。
Nameプロパティで変数名を指定し、Valueプロパティで変数内の値を指定します。

上記の例では、新しい変数名に$iという変数を指定しています。
$iはFor文で1から9までの値が格納されますので、結果、$test01~$test09の変数が作成されます。
これで連番の変数が作成できます。

# 作成したtestが付く変数を全て取得する
Get-Variable -Name test*
この文はいわばオマケですが、Set-Variableコマンドレットと対をなすのがこのGet-Variableコマンドレットです。
Get-Variableコマンドレットはその名のとおり、変数を取得するためのものです。
Nameプロパティで取得する変数名を指定するのですが、その際にワイルドカードを使用することができます。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

解説は以上となります。

=============================================================
本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
(リクエストも歓迎します)
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=============================================================

スポンサーリンク


0 件のコメント:

コメントを投稿

疑問・質問・リクエスト お気軽にどうぞ (^O^)/