將腳本輸出寫入控制台或文字檔案時,您通常希望將其格式化為可讀。在 PowerShell 中,常見的方法是使用換行符,這會強制將下一部分輸出到新行。
在任何腳本或程式語言中,換行總是有點棘手,但是透過使用`n
和`r
我們可以輕鬆地將內容強制換行。
在本文中,我將向您展示如何在 PowerShell 中使用換行符號。
PowerShell 中的新行
要在 PowerShell 中繼續在新行中輸出,我們可以使用特殊字符`n
和`r
。第一個用於換行,後者用於回車。現在,在使用這些字元時,理解這種差異很重要。
這`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 讀取文字檔案時,預設所有行都會被格式化為一長串。然而,我們可以透過使用來保留新的線路信息-raw
參數與cmdlet。
這-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
也是可以的。
希望您喜歡這篇文章,如果您有任何疑問,請在下面發表評論。