Записать-разместить две переменные в одной строке, не испортив форматирование? - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь написать код, чтобы взять файл dat и вывести данные на отформатированный экран.Сначала я устанавливаю все имена в переменную и оценки.Теперь мне нужно вывести их в одной строке, чтобы они выстроились в линию, но когда я write-host первый набор имен, это портит форматирование всех моих чисел.Как я могу сделать так, чтобы они были в прямом столбце?

Я попытался запустить код на отдельной строке, которая выпрямляет столбцы, но затем цифры - это строка под именами.

[string] $names = "{0,-10}" -f "$Name"
[string] $grades = "{0,31:f2}{1,15:f2}{2,15:f2}{3,15:f2}{4,15:f2}{5,16:f2}{6,12:f2}{7,20:f2}" -f "$Assgn1","$Assgn2","$Assgn3","$Assgn4","$Midterm","$Final","$finalgrade","$lettergrade" #Here I output the data
write-host "$names","$grades"
Jamie Zawinski                            78.8           81.0           77.3           80.0           80.0            77.0          79                   C
Adam Douglas                            86.2           69.0           77.8           81.0           87.5            88.0       81.67                   B

Я хочу, чтобы оценки были выстроены в прямой столбец, чтобы длина имени не влияла на каждую строку.

1 Ответ

0 голосов
/ 29 марта 2019

Вместо использования форматирования в переменной, вы могли бы просто использовать несколько операторов Write-Host для каждого элемента данных для форматирования вывода.Используя переключатель -NoNewline и включая вкладки, вы можете получить желаемый результат.

Конечно, это должно быть включено в цикл для обработки каждого пользователя в списке:

Write-Host $name -NoNewline
Write-Host "`t $assign1" -NoNewline
Write-Host "`t $assign2" -NoNewline
Write-Host "`t $assign3" -NoNewline
Write-Host "`t $assign4" -NoNewline
Write-Host "`t $Midterm" -NoNewline
Write-Host "`t $Final" -NoNewline
Write-Host "`t $finalgrade" -NoNewline
Write-Host "`t $lettergrade"

Это отформатирует вывод с помощью TABS между каждым элементом и всеми в одной строке.Не забудьте не включать ' -NoNewline ' в последний элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...