如何在 PowerShell 中將新行添加到命令輸出中

  1. 使用 `N 在 PowerShell 中將新行添加到命令輸出
  2. 使用輸出字段分隔符 OFS 在 PowerShell 中將新行添加到命令輸出
  3. 使用 [Environment]::NewLine 在 PowerShell 中將新行添加到命令輸出
  4. 使用 Out-String 在 PowerShell 中將新行添加到命令輸出
  5. 結論
如何在 PowerShell 中將新行添加到命令輸出中

PowerShell 包含一組特殊字符序列,可以自定義輸出內容。這些序列通常被稱為轉義序列。它們以反引號字符 `` ` 開頭,並且對大小寫敏感。

一些轉義序列的示例有 `0, `a, `b, `e, `f, `n, `r, 等等。只有在雙引號 " " 中包含時,轉義序列才會被解釋。

在這篇文章中,我們探討不同技術以在 PowerShell 中將新行添加到命令輸出中。每一種技術都提供了一種獨特的方法來實現所需的輸出格式,並提供了靈活性和控制權,以改變 PowerShell 腳本輸出的外觀。

使用 `N 在 PowerShell 中將新行添加到命令輸出

轉義序列 ``n` 在許多程式語言中廣泛使用,包括 PowerShell,用於表示新行字符。

當在字符串中遇到 ``n` 時,它指示解釋器在顯示文本時將光標移到下一行的開頭。

在 PowerShell 中,反引號用作轉義字符,以表示字符串中的特殊字符。

Write-Host "This is line 1`nThis is line 2"

在這個例子中,我們利用 Write-Host cmdlet 輸出兩行文本。通過使用 ``n轉義序列,我們在“This is line 1”“This is line 2”` 之間創建了一個新行,從而實現了內容的清晰分隔。

輸出:

在 PowerShell 中將新行添加到命令輸出 - 輸出 1

您可以使用多個 `n 字符來添加多行。

Write-Host "This is line 1`nThis is line 2`n`n`This is line 3"

我們首先輸出 "This is line 1",接著使用反引號 (``n) 添加一個新行字符,這指示 PowerShell 轉到下一行。然後,我們通過再次使用新行字符在新行上輸出 “This is line 2”`。

之後,我們使用反引號包含兩個連續的新行字符 (``n),在 “This is line 2”“This is line 3”之間創建了一個空白行。最後,我們在新行上輸出“This is line 3”`。

輸出:

在 PowerShell 中將新行添加到命令輸出 - 輸出 2

使用輸出字段分隔符 OFS 在 PowerShell 中將新行添加到命令輸出

在 PowerShell 中,輸出字段分隔符 (OFS) 是一個特殊變量,用於確定當數組中的元素被轉換為字符串時如何分隔它們。默認情況下,PowerShell 使用空格分隔數組元素。

然而,您可以修改 OFS 變量的值以指定不同的分隔符,例如表示新行字符的轉義序列 ``n。

首先,您必須在 OFS 變量中定義一個分隔符。

$OFS = "`n`n"
$color = 'red', 'blue', 'green', 'yellow'
"$($color)"

在這段代碼示例中,我們首先將 OFS 變量設置為兩個 ``n,表示應該使用新行字符來分隔輸出中的元素。然後,我們定義了一個叫做 $color` 的數組,包含四個顏色字符串。

當我們使用字符串插值語法 "$($color)" 時,PowerShell 隱式地將數組轉換為字符串,並使用 OFS 的值將每個元素分隔開,從而使每個顏色都在雙行中顯示。

輸出:

在 PowerShell 中向命令輸出添加新行 - 輸出 3

使用 [Environment]::NewLine 在 PowerShell 中將新行添加到命令輸出

在 PowerShell 中,[Environment]::NewLine 方法是一種方便的方法,用於檢索適合當前操作系統環境的新行字符序列。此方法返回一個字符串,該字符串包含新行序列(Unix 基於系統為 \n,Windows 基於系統為 \r\n)。

通過使用此方法,您可以確保您的 PowerShell 腳本生成具有正確新行字符的輸出,使其在不同環境中都是平台獨立的,並且兼容各種環境。

$color = 'red', 'blue', 'green', 'yellow'
$new = [Environment]::NewLine
$color | foreach { "$_$new" }

在這個代碼示例中,我們首先定義了一個叫做 $color 的數組,包含四個顏色字符串。然後,我們使用 [Environment]::NewLine 來檢索新行字符序列並將其存儲在 $new 變量中。

接下來,我們將 $color 數組通過管道輸入到 Sort-Object 中,按字母順序對顏色進行排序。最後,我們使用 foreach 遍歷每個排序後的顏色,將每個顏色與存儲在 $new 中的新行字符串聯,從而得到每個顏色在新行上顯示的排序輸出。

輸出:

在 PowerShell 中向命令輸出添加新行 - 輸出 5

使用 Out-String 在 PowerShell 中將新行添加到命令輸出

在 PowerShell 中,Out-String cmdlet 將輸入對象轉換為單個字符串,這對於格式化命令輸出非常有用。默認情況下,Out-String 會在每個對象後附加一個新行字符 (``n`),使您能夠輕鬆地將新行添加到命令輸出中。

這種方法特別有助於確保輸出中的每個項目都在單獨的行上顯示,改善可讀性和組織性。

$color = 'red', 'blue', 'green', 'yellow'
$color | Out-String

在這個代碼片段中,我們首先定義了一個叫做 $color 的數組,包含四個顏色字符串。然後,我們使用 [Environment]::NewLine 方法檢索適合當前環境的新行字符序列並將其存儲在 $new 變量中。

接下來,我們使用 foreach 循環遍歷 $color 數組中的每個元素。在循環內,我們將每個顏色字符串與存儲在 $new 中的新行字符串聯,確保每個顏色都在命令輸出中的新行上顯示。

輸出:

在 PowerShell 中向命令輸出添加新行 - 輸出 6

結論

PowerShell 提供了幾種有效的方法來將新行添加到命令輸出中,增強可讀性和組織性。無論是使用轉義序列如 ``n,利用 [Environment]::NewLine方法以獲取平台獨立的新行字符,還是自定義OFS` 變量以格式化數組輸出,PowerShell 都提供了多功能的解決方案以滿足各種腳本需求。

通過理解和實施這些技術,PowerShell 腳本作者可以創建更具視覺吸引力和信息性的輸出,提高整體使用者體驗和腳本效率。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website