Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Powershell

Powershellのハッシュテーブル(hashtable)の作成方法や値の取得方法をご紹介

投稿日:2020年12月8日 更新日:

<目次>

(1) Powershellのハッシュテーブル(hashtable)の作成方法や値の取得方法をご紹介
 (1-1) ハッシュテーブルとは?
 (1-2) ハッシュテーブルの構文
 (1-3) ハッシュテーブルの動的な生成~値の取得

(1) Powershellのハッシュテーブル(hashtable)の作成方法や値の取得方法をご紹介

(1-1) ハッシュテーブルとは?

Powershellにおけるデータ構造の一つで、1つ以上のKey(キー)とValue(値)のペアにより構成される事が特徴です。

利点として、スクリプトにて自動でKey-Valueの組み合わせを登録できて、一時的なストレージ代わりになる点が便利です。加えてKey情報があるので、要素に対して「名前指定」でのアクセスが可能になります(※通常の配列では要素のインデックス等を利用するが)

目次にもどる

(1-2) ハッシュテーブルの構文

①定義
ハッシュテーブルは「@」マークの後に鍵括弧{ }で表現します。

@{ }

 

②キーと値の設定
そして{ }の中身にKeyとValueの値を代入していきます。キー(Key)は一意な値である必要があり(重複不可)、Key-Valueの間はセミコロン「;」で区切ります。

@{ 'key1' = 'value1';'key2' = 'value2' }

 

③変数への代入
多くの場合は次の例のように、変数に代入して利用します。変数名を書くと、その中身をコンソールに出力する事ができます(2行目の「$hash」)

$hash = @{ 'key1' = 'value1';'key2' = 'value2' }
$hash

(図121)

目次にもどる

(1-3) ハッシュテーブルの動的な生成~値の取得

値を取得する際は下記のサンプルのように「foreach」などを使ってループ処理で各HashTable要素にアクセスします。

(サンプルプログラム)

#(1)空のHashTable変数を定義
$hash = $null
#(2)空のHashTableを代入
$hash = @{}
#(3)HashTable格納用のデータを集める
$service = get-service -Unique
#(4)foreachステートメントを使って、集めた要素内をループ
foreach ($s in $service)
{
 #(5)キー(Key)と値(Value)の追加
 $s.name +" "+ $s.status
 #$hash.add($p.name,$p.id)
}

(サンプルプログラム解説)

(1)空のHashTable変数を定義&(2)空のHashTableを代入

このプログラムを繰り返し実行するケース等で、初期化をしないとグローバル変数の値は残り続けます。それを防ぐために最初に「$null」による初期化をしています。

(3)HashTable格納用のデータを集める

get-serviceコマンドレットでサービスの一覧を取得しています。またHastTableはキー情報が一意である必要があるため、Uniqueを指定して一意な結果を返すようにしています。

(4)foreachステートメントを使って、集めた要素内をループ

foreachコマンドを使ってHashTableの各要素をループします。

(図131)サンプルプログラム実行結果

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Powershell

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Powershellで文字列がnullかどうか判定する方法

<目次> (1) Powershellで文字列がnullかどうか判定する方法  (1-1) 構文  (1-2) 構文使用例  (1-3) サンプルプログラム (1) Powershellで文字列がnu …

Powershellで文字列をタブ区切りで分割~splitオペレータの活用~

<目次> (1) Powershellで文字列をタブ区切りで分割~splitオペレータの活用~  (1-1) 構文  (1-2) サンプルプログラム    (サンプルプログラム#1)ベーシックな「-s …

バッチから引数を与えてPowershellを実行する方法

<目次> (1) バッチからPowershellを実行する方法  (1-1) 構文①  (1-2) 構文② (2) バッチから引数を与えてPowershellを実行する方法  (2-1) 引数を表現す …

Powershellで文字列のダブルクォーテーションを削除する方法

<目次> (1) Powershellで文字列のダブルクォーテーションを削除する方法  (1-1) 方法1:.NETのString.Formatメソッドを使う方法  (1-2) 方法2:Powersh …

Powershellで親フォルダのパスを取得する方法+Split-Pathコマンドレットのオプションも併せてご紹介

<目次> (1) Powershellで親フォルダのパスを取得する方法  (1-1) 構文と使用例  (1-2) ご参考:Split-Pathのオプション (2) Powershellでフォルダ配下の …

  • English (United States)
  • 日本語
Top