PowerShellでプレースフォルダで文字列(テンプレート)を一括置換

コンピュータ

テンプレート(ひな形文章)内にある、プレースフォルダ(置き換え目印)を置換するサンプルコードです。

# プレースフォルダによるテンプレートの置き換え

# テンプレート
$tempate = @"
プロジェクト名: {{PROJECT}}
作成者: {{AUTHOR}}
作成日: {{DATE}}

{{PROJECT}} は {{AUTHOR}} によって作成されました。
"@
# 読み込みを想定
# $template = Get-Content template.txt -Raw

# 置き換えデータ(ハッシュテーブル)
$values = @{
    PROJECT = "SampleTool"
    AUTHOR  = "Maywork"
    DATE    = (Get-Date).ToString("yyyy/MM/dd")
}

# テンプレート置換関数
function Expand-Template {
    param(
        [string]$text,
        [hashtable]$Values
    )
    [regex]::Replace($text, "{{(\w+)}}", {
        param($m)
        $Values[$m.Groups[1].Value]
    })
}

# 置換実行
$result = (Expand-Template $tempate $values)

echo $result
'''
結果
プロジェクト名: SampleTool
作成者: Maywork
作成日: 2026/02/06

SampleTool は Maywork によって作成されました。
'''

コメント