首页 > 解决方案 > PowerShell Write-Host 追加到行而不是新行?

问题描述

我正在解析一个外部日志文件auditlog_0.txt,并且只想提取选定的字符串并将它们放在一行上,最好以制表符 ( `t) 分隔或其他分隔方式(逗号/冒号/分号)。我有代码工作,它将每个输出放在一个新行上,但由于文件的大小,我只能在缓冲区中获得 9999 行,并且必须将我的源文件分成 3 个部分以适应输出。

我继承了这段代码并一直在研究-NoNewline,但似乎无论我把它放入什么格式都行不通。

$myFileLines = gc .\auditlog_0.txt

foreach ($line in $myFileLines) {
    if ($line -like '* Sequence*') {
        $auditlog = $line
    } else  {
        if ($line -like '*Time*') {
            Write-Host $auditlog $line
        } else  {
            if ($line -like '*Cluster*') {
                Write-Host $auditlog `t `t `t `t `t `t $line
            } else  {
                if ($line -like '*Action*') {
                    Write-Host $auditlog `t `t `t `t `t `t `t `t `t `t `t `t $line
                }
            }
        }
    }
}

上面给出了我正在寻找的东西,但只在 3 行单独的行上(并且很好地缩进了制表符),所以现在我只需要弄清楚如何将它们全部附加到一行上。

标签: powershell

解决方案


推荐阅读