← Back to Home

PowerShellのデータ構造の紹介:配列、ハッシュテーブル、辞書など

Views: 957

You can try the commands on our interactive shell.

PowerShellのデータ構造の紹介:配列、ハッシュテーブル、辞書など

PowerShellは、マイクロソフトが提供する強力なタスク自動化と設定管理フレームワークであり、コマンドラインシェルとWindows .NET Frameworkを含みます。其の一つのkey featureは、多くのデータ構造に対応できることです。

このチュートリアルでは、PowerShellの組み込みデータ構造について説明します。これには、配列、ハッシュテーブル(辞書)、カスタムオブジェクトなどが含まれます。また、这些データ構造を使用して効率的なPowerShellスクリプトを作成する方法を学びます。

配列

PowerShellでは、配列が基本的なデータ構造として存在します。これにより、複数のオブジェクトをストレージと操作することができます。以下は例です:

# 配列を作成する
$myArray = @("apple", "banana", "orange")

# インデックスで要素にアクセスする
Write-Host $myArray[0] # 出力:apple

# 配列の最後に要素を追加する
$myArray += "grape"
Write-Host $myArray # 出力:{apple, banana, orange, grape}

# 配列の長さを取得する
Write-Host $myArray.Length # 出力:4

ハッシュテーブル(辞書)

PowerShellでは、ハッシュテーブル(辞書)は非常に強力なデータ構造として存在します。これにより、キーと値のペアを一意のキーでストレージと操作することができます。

# 空のハッシュテーブルを作成する
$myHashTable = @{}

# キーと値のペアを追加する
$myHashTable.Add("Name", "John")
$myHashTable.Add("Age", 30)
$myHashTable.Add("Occupation", "Engineer")

# キーの値にアクセスする
Write-Host $myHashTable["Name"] # 出力:John

# ハッシュテーブルにキーが存在するかどうかを確認する
Write-Host $myHashTable.ContainsKey("Age") # 出力:True

カスタムオブジェクト

PowerShellでは、カスタムオブジェクトを使用して複雑なデータ構造を表すことができます。これらのオブジェクトにはプロパティとメソッドがあります。

# カスタムオブジェクトを作成する
$myObject = [PSCustomObject]@{
    Name = "John"
    Age  = 30
    Occupation = "Engineer"
}

# カスタムオブジェクトのプロパティにアクセスする
Write-Host $myObject.Name # 出力:John

# メソッドをカスタムオブジェクトに追加する
$myObject | Add-Member -MemberType ScriptMethod -Name SayHello -Value {
    Write-Host "Hello, my name is $($this.Name)!"
}

# カスタムオブジェクトのメソッドを呼び出す
$myObject.SayHello() # 出力:Hello, my name is John!

Tuple

Tupleは、PowerShell 7.0以降で導入された新しいデータ構造です。これにより、immutableなオブジェクトのコレクションを作成することができます。

# Tupleを作成する
$myTuple = [PSTuple]::New("John", 30)

# Tupleの要素にアクセスする
Write-Host $myTuple[0] # 出力:John

# Tupleの要素を変更しようとしてもエラーが発生します
#$myTuple[0] = "Jane" # エラー:Cannot modify a Tuple.

セット

PowerShellでは、セットは異なるオブジェクトのコレクションを作成することができます。

# 空のセットを作成する
$mySet = [System.Collections.Generic.HashSet[string]]::New()

# セットに要素を追加する
$mySet.Add("apple")
$mySet.Add("banana")
$mySet.Add("orange")

# セットに要素が存在するかどうかを確認する
Write-Host $mySet.Contains("apple") # 出力:True

# セットのサイズを取得する
Write-Host $mySet.Count # 出力:3

PowerShellスクリプトでのデータ構造の使用

これらのデータ構造を使用して、実世界のPowerShellスクリプトを作成する方法を見てみます。

# スクリプト例:配列からレポートを作成する
$array = @("apple", "banana", "orange")
$output = ""
foreach ($element in $array) {
    $output += "$element`n"
}
Write-Host $output

# スクリプト例:ハッシュテーブルを使用して要素をフィルタリングする
$hashTable = @{
    "John"  = 30;
    "Jane"  = 25;
    "Jim"   = 40;
    "Jill"  = 35;
}

$agesOver30 = @()
foreach ($key in $hashTable.Keys) {
    if ($hashTable[$key] -gt 30) {
        $agesOver30 += [PSCustomObject]@{Name = $key; Age = $hashTable[$key]}
    }
}
Write-Host $agesOver30

このチュートリアルでは、PowerShellの組み込みデータ構造:配列、ハッシュテーブル(辞書)、カスタムオブジェクト、Tuple、セットについて説明しました。また、これらのデータ構造を使用して効率的なPowerShellスクリプトを作成する方法を学びました。

最後に、このチュートリアルでは、PowerShellの組み込みデータ構造を理解することで、タスク自動化と設定管理のためのスクリプトを作成することができます。

Try it Now!