Это мой вывод ниже при создании функции с циклом 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, это перемещает систему.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 ответ1

0

Вы должны проверить форматирование (-f) PS. Образец можно найти здесь: 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 символов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .