ウェブサイト検索

PowerShellで新しい行を追加する


コンソールやテキストファイルにスクリプトの出力を書くとき、可読性のためにフォーマットしたいことがよくあります。PowerShellでこれを行う一般的な方法の一つは、改行を使用することで、次の部分を新しい行に出力するよう強制することです。

どのスクリプト言語やプログラミング言語でも、改行を正しく行うのは常に少し難しいですが、`n と `r を使うことで、コンテンツを簡単に新しい行に強制的に配置することができます。

この記事では、PowerShellで新しい行文字を使用する方法をお見せします。

PowerShellでの新しい行

PowerShellで出力を新しい行に続けるには、特殊文字の`nと`rを使用できます。最初のものは改行に使われ、後者はキャリッジリターンに使われます。この2つの文字を使用する際の違いを理解することが重要です。

`n(改行)文字は、次の行にカーソルを移動する新しい行文字(ASCII 10、LF)です。

Write-Host "String that we want to show `non two lines"

Result
String that we want to show 
on two lines

上の例で重要なのは、改行文字の後にスペースを追加しないことです。特別な文字の後にスペースを追加すると、改行がスペースから始まってしまうので、それは望ましくありません。

`rはキャリッジリターン文字(ASCII 13、CR)であり、カーソルを行の先頭に戻します。これを改行文字なしで使用すると、既存の出力が上書きされることになります。以下の例をご覧ください。

Write-Host "String that we want to show `ron a new line"

Result
on a new linee want to show

PowerShellは最初に出力「表示したい文字列」を書き込み、その後カーソルが行の先頭に戻り、残りの出力「新しい行で」は既存の文字列の最初の文字を上書きします。

rとnを組み合わせる

Windowsでは、新しい行を作成するために一般的に両方の特殊文字を使用します。最近ではこれが本当に必要というわけではありませんが、この方法であればWindowsのすべてのアプリケーションで動作することが確実です。

UnixベースのシステムでのみPowerShellスクリプトを使用している場合は、新しい行文字だけを使用すれば十分です。

そのため、Windowsで新しい行に出力を続けるには、次のことをお勧めします。

Write-Host "String that we want to show `n`ron two lines"

改行を保持しながらファイルを読む

PowerShell でテキストファイルを読むと、すべての行はデフォルトで1つの長い文字列に形式が整えられます。ただし、Get-Content コマンドレットに -raw パラメーターを使用することで、改行情報を保持できます。

-raw パラメータは、元の行の区切りを保持しながら、ファイルの全内容を読み取ります。この方法でスクリプトを出力すると、行の区切りが表示されます:

$fileContent = Get-Content -Path "C:\temp\multiline.txt" -Raw

Write-Host $fileContent

新しい行にコマンドを書く

PowerShellに関するもう一つの一般的な質問は、コマンドの一部を新しい行に書く方法です。長いコマンドを一行で書くと読みづらくなるため、時にはコマンドを新しい行に続けたいことがあります。

これを行う最良の方法はスプラッティングを使用することです。これは、ハッシュテーブルにパラメーターを追加する方法です。しかし、これは常に可能または実用的とは限りません。こうした場合には、コマンドを新しい行に分割するために`文字を使用できます。

以下の例は少し極端かもしれませんが、コマンドを複数の行に分けることでPowerShellでの可読性がどのように向上するかの良いアイデアを与えてくれます。

Get-ChildItem -Path C:\Users `
              -Recurse `
              -Filter *.txt `
              -File `
              | Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-7) } `
              | Select-Object Name, CreationTime, Length `
              | Sort-Object CreationTime -Descending `
              | Format-Table -AutoSize

まとめ

PowerShellで改行を使用することは、出力の可読性を向上させるだけでなく、長いコマンドにも役立ちます。出力における改行については、最大の互換性のために両方の特殊文字を使用することをお勧めしますが、`nだけを使用することも可能であることに留意してください。

この記事を気に入っていただけたら幸いです。質問がある場合は、下にコメントを残してください。