仅显示 Output/String Powershell 的特定部分

Display only certain part of Output/String Powershell

我当前输出到命令

Get-Content -Path $logFilePath

如下:

Transcript started, output file is \<path>\

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Open archive: \<path>\<archive>.zip
--
Path = \<path>\<archive>.zip
Type = zip
Physical Size = 2543

Scanning the drive:
6 folders, 9 files, 9757 bytes (10 KiB)

Creating archive: \<path>\<archive>.zip

Add new data to archive: 0 files, 0 bytes


Files read from disk: 0
Archive size: 22 bytes (1 KiB)
Everything is Ok

过滤输出的最佳方法是什么,使其看起来像这样

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

    New Data Added: 0 files
    New Data Size:  0 bytes
    Archive size after new backup: 22 bytes (1 KiB)

感谢所有帮助 - Tortellini

如果您的源日志保留相同的结构,那么下面应该可以满足您的需求。

$content = (get-content 'C:\test\New Text Document.txt').Split("`n")
$row15 = (($test[15].Split(':'))[1].Split(',')).Trim()
$NDA = $row15[0]
$NDS = $row15[1]
$NAS = (($test[19].Split(':'))[1]).Trim()
$output = "$($test[2])`r`n`r`n`t`tNew Data Added: $NDA`r`n`t`tNew Data Size:  $NDS`r`n`t`tArchive size after new backup: $NAS"

这基本上是对内容的砍伐和砍伐工作,因为结构允许这样做。 它将内容行作为数组获取。从那里您可以从数组元素中提取相关数据并在创建新的输出字符串之前对其进行清理。

您可以使用 Regex 路由来匹配您想要的数据并以这种方式提取它,但 Regex 总是让我头疼。

看看上面的内容与您尝试的内容相比如何会很有趣。我敢肯定有很多方法可以达到所需的结果,也许您的想法只需要一点改进。