在我的文本文件中添加一个新行

时间:2016-11-28 21:26:46

标签: loops foreach text-files powershell-v4.0

我想要一个看起来像这样的文本文件:

SAMSUNG-SM-G930A
355502070023342
SAMSUNG-SM-G930A
355502070023342
SAMSUNG-SM-G930A
Not Available
GI-I9500_TMMARS
354926050849775
GI-I9500_TMMARS
354926050849775
GI-I9500_TMMARS
354926050849775

并在每两行之间添加一个空行。因此,例如,它应该是如何看起来像

SAMSUNG-SM-G930A
355502070023342

SAMSUNG-SM-G930A
355502070023342

SAMSUNG-SM-G930A
Not Available

GI-I9500_TMMARS
354926050849775

GI-I9500_TMMARS
354926050849775

GI-I9500_TMMARS
354926050849775

我无法让它正常工作。我错过了什么?这是我用来尝试完成此任务的代码。我的想法是增加数组值以捕获数组的所有成员。总会有偶数个数组变量。

$Path44 = "C:\Users\J\Desktop\Script\FinalResults.txt"

$NewContents = Get-Content $Path44

$Var1[0]
$Var2[1]

foreach ($NewContent in $NewContents) {
  $NewContents[0]
  $NewContents[1]
  $Var1++
  $Var2++
  Write-Host "`n"
}

1 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点,例如计算行数并在每个偶数行号后回显一个空行:

$file = 'C:\path\to\your.txt'

$i = 0
(Get-Content $file) | ForEach-Object {
  $_                        # echo line
  $i++
  if ($i % 2 -eq 0) { '' }  # append empty line on even line numbers
} | Set-Content $file

或者您可以使用正则表达式替换:

$file = 'C:\path\to\your.txt'
(Get-Content $file -Raw) -replace '(.*\n){2}', "`$&`n" | Set-Content $file

正则表达式中的.元字符匹配除换行符之外的任何字符,因此.*\n匹配所有字符,包括下一个换行符(即一行)。通过对"线进行分组"表达式和添加量词,你得到两个连续的行。将匹配项替换为自身($&)和换行符(`n),并且在每隔一行后有效插入一个空行。