多个文件上的行计数ForEach-Object

时间:2014-10-30 20:45:05

标签: powershell

我正在试图弄清楚如何合并为每个循环添加到每个文件的行数。计数需要在检查时放入每个文件的页脚。另一个问题是计数需要包括添加页眉和页脚行(即8行+ 1个页眉+ 1个页脚= 10)。我正在使用的代码如下,我知道计算行的代码是Get-Content $mypath | Measure-Object -Line | {$linecount = $_.Count},但我不知道如何正确地合并它。有什么建议吗?

Get-ChildItem $destinationfolderpath -REcurse -Filter *.txt | ForEach-Object -Begin { $seq = 0 } -Process {
        $seq++ 
        $seq1 = "{0:D4}" -f $seq; $header="File Sequence Number $seq1"
        $footer="File Sequence Number $seq1 and Line Count $looplinecount"
        $header + "`n" + (Get-Content $_.FullName | Out-String) + $footer | Set-Content -Path $_.FullName
}

1 个答案:

答案 0 :(得分:1)

所以将文件的内容加载到循环中的变量,对该变量执行measure -line,添加2(标题行之一,页脚行一个),然后将其放入子 - 页脚的表达式......

Get-ChildItem $destinationfolderpath -REcurse -Filter *.txt | ForEach-Object -Begin { $seq = 0 } -Process {
    $seq++
    $seq1 = "{0:D4}" -f $seq
    $header="File Sequence Number $seq1"
    $Content=Get-Content $_.FullName | Out-String
    $footer="File Sequence Number $seq1 and Line Count $(($content|measure -line|select -expand lines)+2)"
    "$header`n$Content$footer" | Set-Content -Path $_.FullName
}