はじめに
Markdownは技術記事やドキュメントでよく利用される軽量マークアップ言語です。
シンプルで書きやすい一方で、テーブルやリストを手作業で整形するのは意外と手間がかかります。
そこで今回は、PowerShellを使ってテーブルデータのMarkdownファイルを自動生成・編集する方法をまとめました。Windowsの環境情報やシステム情報など、PowerShellで取得できる内容をMarkdownに整理しておくと便利だと思い、備忘録として残しています。
基本の考え方
Markdownはテキストファイルとして扱えるため、PowerShellでは Get-Content や Set-Content、Add-Content を使って簡単に編集できます。さらに、配列やオブジェクトをループ処理することで、リストやテーブルをMarkdown形式に自動生成することも可能です。外部ツールを使わなくても、PowerShell単体で十分に活用できる点が大きな魅力です。
基本サンプル:配列からMarkdownテーブルを生成
# データ定義
$data = @(
@{Name="Item1"; Value=100},
@{Name="Item2"; Value=200}
)
# テーブルのヘッダ行
$table = @()
$table += "| Name | Value |"
$table += "|------|-------|"
# データをMarkdown形式に変換
foreach ($row in $data) {
$table += "| $($row.Name) | $($row.Value) |"
}
# ファイルに出力(UTF-8)
$table | Set-Content .\table.md -Encoding utf8
出力結果(table.md):
| Name | Value |
|------|-------|
| Item1 | 100 |
| Item2 | 200 |
QiitaやGitHubのプレビューに貼り付けると、整った表になります。
応用例1:CSVからMarkdownテーブルへ
CSVファイルをそのままMarkdown表に変換できます。
$data = Import-Csv .\data.csv
$table = @()
$table += "| " + ($data[0].PsObject.Properties.Name -join " | ") + " |"
$table += "| " + (($data[0].PsObject.Properties.Name | ForEach-Object { "----" }) -join " | ") + " |"
foreach ($row in $data) {
$line = ($row.PSObject.Properties.Value -join " | ")
$table += "| $line |"
}
$table | Set-Content .\csv_table.md -Encoding utf8
これで既存データをドキュメント化できます。
応用例2:リストの自動生成
単純な配列をMarkdownリストに変換する例。
$items = "Apple","Banana","Cherry"
$items | ForEach-Object { "- $_" } | Set-Content .\list.md -Encoding utf8
出力:
- Apple
- Banana
- Cherry
応用例3:システム情報をMarkdownに出力
環境情報をそのまま表にすることで、ドキュメント作成や共有に便利です。
Get-ComputerInfo |
Select-Object OsName, OsArchitecture, CsSystemType, CsManufacturer, CsModel |
ForEach-Object {
@"
| 項目 | 値 |
|--------------|----|
| OS名 | $($_.OsName) |
| アーキテクチャ | $($_.OsArchitecture) |
| システム種別 | $($_.CsSystemType) |
| メーカー | $($_.CsManufacturer) |
| モデル | $($_.CsModel) |
"@
} | Set-Content .\systeminfo.md -Encoding utf8
出力例:
| 項目 | 値 |
|--------------|-----------------------------|
| OS名 | Microsoft Windows 11 Pro |
| アーキテクチャ | 64-bit |
| システム種別 | x64-based PC |
| メーカー | Lenovo |
| モデル | ThinkPad X1 Carbon Gen 11 |
まとめ
PowerShellではMarkdownを自由に操作でき、配列やオブジェクトからテーブルやリストを自動生成できます。
また、システム情報やCSVをMarkdown化すれば、備忘録やドキュメント作成を効率化できます。



