如何将其拆分为单独的字符串/数组/等,以便我可以分别迭代每个字符串?目标是将它们分开,以便我可以解析每个记录并将其插入到 PSCustomObject 中。
我有以下代表超过 1 次扫描的文本块。每个扫描记录都以“根扫描路径”行开始,以“可疑文件”行结束。
我能得到的最接近的是以下行,它可以工作,但随后我丢失了“根扫描路径”行,因为它是分隔符。
$String -Split "Root Scan Path: C:\\"
扫描记录也可能超过 2 条。
Root Scan Path: C:\
Scan ID: 03307ad8-1a59-7d4e-8dfe-28864c9d1bc2
Status: Completed
Initiated from: User
Start Time: Monday, October 23, 2023 9:24:18 PM
End Time: Monday, October 23, 2023 9:34:00 PM
Scanned Files: 38311
Unsupported Files: 229479
Traversed Files: 321202
Total Files: 267790
Suspicious Files: 0
Root Scan Path: C:\
Scan ID: f32a64b0-56f5-664c-bf37-a7b120f759d8
Status: Running
Initiated from: User
Start Time: Tuesday, October 24, 2023 6:20:45 PM
End Time:
Scanned Files: 0
Unsupported Files: 0
Traversed Files: 0
Total Files: 0
Suspicious Files: 0
我会在换行符上进行拆分,并将第一次出现的冒号替换为唯一字符(例如等号),然后使用
ConvertFrom-String
来获取正确的 PowerShell 对象。
@'
Root Scan Path: C:\
Scan ID: 03307ad8-1a59-7d4e-8dfe-28864c9d1bc2
Status: Completed
Initiated from: User
Start Time: Monday, October 23, 2023 9:24:18 PM
End Time: Monday, October 23, 2023 9:34:00 PM
Scanned Files: 38311
Unsupported Files: 229479
Traversed Files: 321202
Total Files: 267790
Suspicious Files: 0
Root Scan Path: C:\
Scan ID: f32a64b0-56f5-664c-bf37-a7b120f759d8
Status: Running
Initiated from: User
Start Time: Tuesday, October 24, 2023 6:20:45 PM
End Time:
Scanned Files: 0
Unsupported Files: 0
Traversed Files: 0
Total Files: 0
Suspicious Files: 0
'@ -split "\r?\n" |
ForEach-Object {
$_ -replace ':(?=\s|$)',' ='
} | ConvertFrom-StringData -Delimiter '='
输出如下所示:
Name Value
---- -----
Root Scan Path C:
Scan ID 03307ad8-1a59-7d4e-8dfe-28864c9d1bc2
Status Completed
Initiated from User
Start Time Monday, October 23, 2023 9:24:18 PM
End Time Monday, October 23, 2023 9:34:00 PM
Scanned Files 38311
Unsupported Files 229479
Traversed Files 321202
Total Files 267790
Suspicious Files 0
Root Scan Path C:
Scan ID f32a64b0-56f5-664c-bf37-a7b120f759d8
Status Running
Initiated from User
Start Time Tuesday, October 24, 2023 6:20:45 PM
End Time
Scanned Files 0
Unsupported Files 0
Traversed Files 0
Total Files 0
Suspicious Files 0