【PowerShell】YAMLデータの読み込み・書き込み方法
PowerShellによるYAMLデータの読み込み・書き込み方法について記載します。
PowerShellはYAMLデータの読み込み・書き込みする標準ライブラリがありません。そのため、powershell-yamlモジュールを使用します。
<環境>
OS:Windows10(64bit)
PSVersion:v5.1
powershell-yaml 0.4.7
powershell-yamlとは
powershell-yamlはPowerShellでYAMLを取り扱うためのオープンソースのライブラリです。ライセンスはApache License 2.0で提供されます。
https://github.com/cloudbase/powershell-yaml
https://github.com/cloudbase/powershell-yaml
powershell-yamlのインストール
構文
PowerShellを「管理者として実行」して、上記コマンドでインストールします。
補足
Install-Moduleの初回実行時は以下が求められます。[Y]を入力してインストールします。
- NuGetプロバイダーのインストール
- PSGalleryを信頼するリポジトリに設定
事前に以下のコマンドを実行してもOKです。
# NuGetプロバイダーのインストール
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# PSGalleryを信頼するリポジトリに設定
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
YAMLデータの読み込み
構文
スクリプト例
YAMLファイルを読み込んで、オブジェクトに変換します。
# YAMLファイル読み込み
$yamlStr = Get-Content -Path ".\test.yaml" -Encoding UTF8 -Raw
# オブジェクトに変換
$yamlData = ConvertFrom-Yaml $yamlStr
Write-Output $yamlData.Name
Write-Output $yamlData.Level
Write-Output $yamlData.Abilities[0]
Write-Output $yamlData.Abilities[1]
Write-Output $yamlData.Parameter.HP
Write-Output $yamlData.Parameter.ATK
Write-Output $yamlData.Parameter.DEF
YAMLファイル
読み込むYAMLファイルの内容は以下になります。
Name: ピカチュウ
Level: 100
Abilities:
- でんきショック
- ボルテッカー
Parameter:
HP: 70
ATK: 50
DEF: 20
YAMLデータの書き込み
構文
スクリプト例
オブジェクトをYAML形式の文字列に変換して、ファイルに書き込みます。
# ハッシュテーブル
$hash = @{
Name = "ピカチュウ"
Level = 100
Abilities = @("でんきショック", "ボルテッカー")
Parameter =
@{
HP=70
ATK=50
DEF=20
}
}
# YAML形式の文字列に変換
$yamlStr = ConvertTo-Yaml $hash
# ファイルに書き込み
Set-Content -Path "./test.yaml" -Value $yamlStr -Encoding UTF8
YAMLファイル
書き込んだYAMLファイルの内容は以下になります。
Abilities:
- でんきショック
- ボルテッカー
Name: ピカチュウ
Level: 100
Parameter:
DEF: 20
ATK: 50
HP: 70