Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【PowerShell】文字列の中で変数を並べて表示する正しい書き方(波括弧 {} の使い方)

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

PowerShellのスクリプトを書いているとき、「変数と変数をアンダーバー(_)などで繋いで、ひとつの文字列として表示したい」ということ、よくありますよね。

しかし、普通に並べて書くだけだと、PowerShellが変数の区切りを正しく理解できず、中身が空っぽで表示されてしまうことがあります。

今回は、変数を安全に並べて表示するための「波括弧({})」を使った正しい書き方をサクッと解説します!

❌ やりがちなNG例:そのまま並べて書いてしまう

例えば、変数 $a に「2026」、変数 $b に「Log」という文字が入っているとします。これを「2026_Log」と表示させたい場合、以下のように書くと失敗します。

PowerShell

$a = "2026"
$b = "Log"

# NGな書き方
Write-Host "$a_$b"

なぜダメなのか?

PowerShellは、$ の後ろにある文字を「ひとつの変数名」として解釈しようとします。 そのため、上記のように書くと、「$a_ という名前の変数」と「$b という変数」だと勘違いしてしまうのです。当然 $a_ という変数は定義していないので、画面には _Log(または何も出ない)という意図しない結果になってしまいます。

⭕ 正しい解決策:波括弧 {} で変数の範囲を明示する

これを防ぐには、最初の変数の「$ の直後」を波括弧 {} で囲んであげるのが正解です。

正しい書き方

PowerShell

$a = "2026"
$b = "Log"

# OKな書き方(ダブルクォーテーションで囲むこと)
Write-Host "${a}_$b"

出力結果

Plaintext

2026_Log

このように ${a} と書くことで、PowerShellに対して「変数名はここまでだよ!」と明確に伝えることができます。これなら、後ろにアンダーバーや他の文字列がくっついていても、正しく変数が評価されて表示されます。

💡 ポイント 文字列内で変数を展開(中身を表示)させるには、全体を**ダブルクォーテーション(")**で囲む必要があります。シングルクォーテーション(')で囲むと、${a}_$b という文字がそのまま出てしまうので注意してください。

まとめ

  • 変数の後ろにすぐ別の文字や変数を繋げると、変数名が誤認される原因になる。

  • 境界線をはっきりさせるために ${変数名} の形で囲む。

  • Write-Host "${a}_$b" の形を覚えておくと便利!

ファイル名に日付や連番をスマートに組み込みたいときなどに必須のテクニックです。ぜひ活用してみてください!

タイトルとURLをコピーしました