PowerShell在行尾添加空格

时间:2016-06-13 15:33:15

标签: powershell

我有一个包含多行的文本文件,每行需要正好700个字符。下面是我的工作和它的工作我必须在$ _之后添加空格,直到该行正好是700个字符长。我想知道是否有方法我可以指定一个数字,并使用它来添加每行后的空格数?

get-content test.txt | ForEach-Object {Add-Content output.txt "$_ "}

1 个答案:

答案 0 :(得分:3)

基于你的问题,结果将有可变长度的行,结尾有700个额外的行(考虑到最后可能有空格)。考虑到字符串是不可变的,这将使用很好的内存。

你应该形成700个空格字符串并将其附加到每一行。

简单示例

$700spaces = ' ' * 700
get-content test.txt | ForEach-Object {$_ + $700spaces}

根据注释说明行应该正好是700个字符

来更新样本
get-content test.txt | ForEach-Object {Add-Content output.txt ($_ + ' ' * (700 - ($_.Length +1)))}

减少内存使用量

使用字符串构建器会更有效。结果会略有不同。它将是一行,行之间有[environment]::NewLine。第一个是每一行在一个单独的字符串中。

字符串构建器示例

$sb = new-object -TypeName System.Text.StringBuilder
$700spaces = ' ' * 700
get-content test.txt | ForEach-Object {
    $sb.AppendFormat('{0}{1}',$_,$700spaces) > $null
    $sb.AppendLine([String]::empty) > $null
}
$sb.ToString()