powershell - 是否可以使用标题字段创建文本文件,并将每个插入行的字段与其对应的标题字段对齐?

时间:2015-02-27 20:17:11

标签: powershell

我制作了一个powershell脚本,首先创建一个文本文件(假设它不存在),其中包含2个标题字段的行," NAME"和" SURNAME"被几个空格分隔开来。

然后,它将提示用户在标题行下方插入名称和姓氏,这两个名称和姓氏将作为新的单行写入文本文件。用户不需要插入更多名字 - 姓名行,但想法是创建更多这些行。

但是,我不知道如何将每个插入的姓氏与" SURNAME"标题字段。通过"对齐"我的意思是每个姓氏的第一个字母与" S" " SURNAME" (解释可能没有必要,但以防万一......)

无论如何,这里的代码是:

clear

[string]$name=read-host -prompt "Enter the name"
[string]$surname=read-host -prompt "Enter the surname"
[string]$header="NAME        SURNAME"
[string]$line="$name        $surname"

add-content -value $header -path c:\data.txt
add-content -value $line -path c:\data.txt
$answer=read-host -prompt "¿Would you like to keep inserting name-surname pairs? (yes/no)" 

while ($answer -eq "yes") {

  $name=read-host -prompt "Enter the name"
  $surname=read-host -prompt "Enter the surname"
  $line="$name       $surname"
  add-content -value $line -path c:\data.txt
  $answer=read-host -prompt "¿Would you like to keep inserting name-surname pairs? (yes/no)" 
}

get-content -path c:\data.txt  

1 个答案:

答案 0 :(得分:1)

使用格式字符串:

'{0, -20}{1, -20}' -f $Name,$Surname

花括号中的第一个数字是要插入的数组元素的索引。

第二个是列宽。负数将保持正确,正数将正确对齐,因此格式字符串将在20个字符列中左对齐$ Name,然后在另一个20个字符列中左对齐$ Surname。调整成分以适应。