我有一个包含多行的文本文件,每行需要正好700个字符。下面是我的工作和它的工作我必须在$ _之后添加空格,直到该行正好是700个字符长。我想知道是否有方法我可以指定一个数字,并使用它来添加每行后的空格数?
get-content test.txt | ForEach-Object {Add-Content output.txt "$_ "}
答案 0 :(得分:3)
基于你的问题,结果将有可变长度的行,结尾有700个额外的行(考虑到最后可能有空格)。考虑到字符串是不可变的,这将使用很好的内存。
你应该形成700个空格字符串并将其附加到每一行。
$700spaces = ' ' * 700
get-content test.txt | ForEach-Object {$_ + $700spaces}
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()