【PowerShell】文字列に改行を含める方法


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

PowerShellで、文字列に改行を含める方法・改行を含む文字列を変数に格納する方法を解説します。

改行を使用する方法

文字列に改行を含めるためには「エスケープシーケンス」を使用します。

PowerShellで、エスケープシーケンスを使用するには、
「`(バッククォート)」を文字の前に付ける必要があります。

では、実際の使用例を見てみましょう。
以下は、CRLFで改行するサンプルになります。

Write-Host あいうえお`r`nかきくけこ`r`nさしすせそ

サンプルの実行結果です。
文字列が改行されたことが確認出来ました。

PS C:\workspace\PowerShell> .\test.ps1
あいうえお
かきくけこ
さしすせそ

改行を含む文字列を変数に格納する方法

改行を含む文字列を変数に格納する場合は、少し工夫が必要です。

ダブルクォーテーションを使用する

改行を含む文字列を変数に格納する場合は、エスケープシーケンスの使用に加え、
その文字列を「"(ダブルクォーテーション)」で囲む必要があります。

では、実際の使用例を見てみましょう。
以下は、CRLFで改行するサンプルになります。

$var = "あいうえお`r`nかきくけこ`r`nさしすせそ"
Write-Host $var

サンプルの実行結果です。
文字列が改行されたことが確認出来ました。

PS C:\workspace\PowerShell> .\test.ps1
あいうえお
かきくけこ
さしすせそ

ダブルクォーテーションで囲まない場合は、以下のエラーが発生します。

PS C:\workspace\PowerShell> .\test.ps1
あいうえお
かきくけこ
さしすせそ : 用語 'あいうえお
かきくけこ
さしすせそ' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が
正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 C:\workspace\PowerShell\test.ps1:1 文字:8
+ $var = あいうえお`r`nかきくけこ`r`nさしすせそ
+        ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (あいうえお
かきくけこ
さしすせそ:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

ヒアドキュメントを使用する

ヒアドキュメントを使用することで、改行を含む文字列を変数に格納することが出来ます。
また、ヒアドキュメントを使用する場合は、エスケープシーケンスは不要です。

ヒアドキュメントとは、特殊な記号などを含む文字列リテラルをソースコード中に記述するための記法です。
以下のように記述します。

変数 = @"
任意の文字列
"@

では、実際の使用例を見てみましょう。
以下は、CRLFで改行するサンプルになります。

$var = @"
あいうえお
かきくけこ
さしすせそ
"@

Write-Host $var

サンプルの実行結果です。
文字列が改行されたことが確認出来ました。

PS C:\workspace\PowerShell> .\test.ps1
あいうえお
かきくけこ
さしすせそ

使用できる改行

PowerShellで使用出来る改行の一覧です。

エスケープシーケンス改行コード
`rCR
`nLF
`r`nCRLF

コメント

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