我正在撰寫一個腳本,它會在某個時候向控制臺顯示命令的輸出(大約 20 行)。為了保持其余腳本輸出的格式,我希望命令的輸出向左縮進一點。我嘗試使用帶有一些手動空格的寫入主機和 -NoNewLine,然后是我的命令的輸出,但它只在輸出的第一行添加空格,其余行仍然從位置 0 出現。
任何人都可以在這里幫助我提供線索。
示例代碼:
Write-Host " " -NoNewLine
D:\Opatch\patch.bat apply 124423.zip | Write-Host
uj5u.com熱心網友回復:
您Write-Host只在腳本頂部使用填充運行一次,但是通過Write-Host管道傳輸到腳本的輸出并沒有任何跡象表明您要將填充與管道的輸出連接起來。您可以使用 aForEach-Loop將輸出與所需的填充連接起來:
$padding = " "
'test', 'test', 'test' | ForEach-Object { Write-Host ${padding}$_ }
一個更簡單的替代方法是使用PadLeft(..)字串方法:
'test', 'test', 'test' | ForEach-Object { $_.PadLeft(20) }
另一個簡單的替代方法是使用Theo評論的Format 運算子:-f
'test', 'test', 'test' | ForEach-Object { '{0,10}' -f $_ }
# OR
'test', 'test', 'test' | ForEach-Object { [string]::Format('{0,10}', $_) }
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/423102.html
標籤:
