这是我创建一个带有 for 循环的函数时的输出:
NO Type
-- ----
1 System.Int32
2 System.Int32
3 System.Int32
4 System.Int32
5 System.Int32
6 System.Int32
7 System.Int32
8 System.Int32
9 System.Int32
10 System.Int32
您会看到,当 10 出现时,它将 System.Int32 向右移动。如何在代码中更改它?这可能不仅仅与 Powershell 有关。
代码:
function CountTen() {
[array]$ListOfNumbers = @()
[array]$NumbersType = @()
for ($i=1; $i -le 10; $i++) {
$ListOfNumbers += ("`n", $i, "`t`t", ($i.GetType()))
}
Write-Host "NO`t`tType"
Write-Host "--`t`t----"
Write-Host $ListOfNumbers, "`t`t", $NumbersType
}
CountTen
答案1
您应该检查 PS 的格式 (-f)。可以在此处找到示例:http://www.computerperformance.co.uk/powershell/powershell_-f_format.htm
因此,对于高级格式化,可以使用以下模式: 格式 -F 值 喜欢
"text {x,xlength} text {y,ylength} text" -f xvalue, yvalue
其中 x(和 y)是 -f 后面列出的值的位置。该值必须出现在放置 {...} 的文本中。xlength(和 ylength)是显示相应值的宽度。长度是可选的。
可以使用特定格式以这种方式重新定义当前问题:
function CountTen() {
$format = "{0,5} {1}"
[array]$ListOfNumbers = @()
[array]$NumbersType = @()
$format -f "NO", "Type"
$format -f "--", "----"
for ($i=1; $i -le 10; $i++) {
$format -f $i, $i.GetType()
}
}
CountTen
此处,整数及其标题在 5 个字符长的字段中“右对齐”(数字通常如此)。