在 PowerShell 中將命令拆分為多行
可讀程式碼很容易將其功能目的傳達給使用者。變數名稱和方法名稱應具有適當的命名約定以提高程式碼的可讀性。其他有助於程式碼可讀性的屬性是一致的縮排和格式樣式。Windows PowerShell 多行命令有助於將長命令列拆分為多個語句以提高可讀性。
在 Windows PowerShell 中,可以使用反引號字元輕鬆建立多行命令,以拆分長或單行命令多行語句。
反引號字元用作一種轉義字元。它轉義換行符並導致行繼續。
本文將解釋 Windows PowerShell 多行命令將長命令拆分為多行的重要性。
Windows PowerShell 多行命令
要將長命令拆分為多行,請使用反引號字元將其拆分為多行。
例如,我們要獲取本地計算機上的可用磁碟空間資訊。不幸的是,獲取此特定資訊的指令碼是一個擴充套件命令,因此難以閱讀和管理。
示例程式碼:
Get-WmiObject -Class win32_logicaldisk | Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
看起來本文中的語法是拆分的,但是當複製到命令列介面時,上面的示例是一個很長的單行指令碼。
我們可以使用 Windows PowerShell 反引號字元輕鬆地將長命令拆分為多行,以便在給定命令中換行。
示例程式碼:
Get-WmiObject -Class win32_logicaldisk `
| Format-Table DeviceId, `MediaType, @{n="Size";e={[Math]::Round($_.Size/1GB,2)}}, `
@{n="FreeSpace";e={[Math]::Round($_.FreeSpace/1GB,2)}}
在上面的示例中,我們使用空格將長命令拆分為多行,然後在要拆分的末尾處使用反引號字元。請記住,反引號和換行符之間不能有任何字元,包括空格。
程式碼結構在 Windows PowerShell 中使用多行命令易於閱讀和維護。但是,通常不推薦使用反引號字元,因為該字元難以閱讀並且會引起錯誤。因此,我們有另一種方法來破壞長行程式碼。
使用特定的操作符斷開長行程式碼
通常,當命令在該點在語法上無法完成時,你會獲得自動行繼續。
一個例子是啟動一個新的管道元素(|
)。管道將毫無問題地工作,因為在管道運算子之後,該命令由於缺少另一個管道元素而無法完成。因此,我們的直譯器所做的是在以下命令列中查詢下一個管道元素。
示例程式碼:
Get-WmiObject -Class win32_logicaldisk |
Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
逗號 (,
) 也可以在某些上下文中使用,例如管道運算子。
示例程式碼:
Get-WmiObject -Class win32_logicaldisk |
Format-Table DeviceId, MediaType,
@{n="Size"; e={[Math]::Round($_.Size/1GB,2)}},
@{n="FreeSpace"; e={[Math]::Round($_.FreeSpace/1GB,2)}}
此外,定義指令碼塊時的大括號 ({}
) 將允許直接續行。
示例程式碼:
Get-WmiObject -Class win32_logicaldisk |
Format-Table DeviceId, MediaType,
@{
n="Size"; e={
[Math]::Round($_.Size/1GB,2)
}
},
@{
n="FreeSpace";e={
[Math]::Round($_.FreeSpace/1GB,2)
}
}
使用上述技術,我們現在可以觀察到我們的示例程式碼更易於閱讀,並且我們在不使用反引號字元的情況下進行了管理。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn