Powershell 路径需要拆分成单独的行,而不是合并成一行
我接近完成这项工作,但有一个问题。在CSV文件中,我需要将路径分成单独的行,而不是将所有路径都放在CSV的一个记录中 我的目标是清理多余的GPO。我需要从GPO备份中搜索xml文件并对其进行分析。如果我在两个或多个GPO中发现相同的自定义字符串,路径将显示哪个文件夹包含冗余字符串,并且可以合并GPO或将其中一个一起删除。有道理。。我希望 我在下面给出了一个输出示例:Powershell 路径需要拆分成单独的行,而不是合并成一行,powershell,csv,Powershell,Csv,我接近完成这项工作,但有一个问题。在CSV文件中,我需要将路径分成单独的行,而不是将所有路径都放在CSV的一个记录中 我的目标是清理多余的GPO。我需要从GPO备份中搜索xml文件并对其进行分析。如果我在两个或多个GPO中发现相同的自定义字符串,路径将显示哪个文件夹包含冗余字符串,并且可以合并GPO或将其中一个一起删除。有道理。。我希望 我在下面给出了一个输出示例: "Count","Paths","Line" "5","C:\Users\user\Desktop\GPO Backup\{
"Count","Paths","Line"
"5","C:\Users\user\Desktop\GPO Backup\{FBF5B657-2B31-4046-9A08-406221481FE1}\gpreport.xml|C:\Users\user\Desktop\GPO Backup\{FD297204-7AAE-4A19-AC59-471D32FC34DC}\gpreport.xml|C:\Users\user\Desktop\GPO Backup\{FD6E7C80-5682-499A-A1B5-A38EF998BD3D}\gpreport.xml|C:\Users\users\Desktop\GPO Backup\{FE4AC515-9C11-40F0-9D2C-940C98CA4DDF}\gpreport.xml|C:\Users\user\Desktop\GPO Backup\{FE4E07F8-BFFB-455C-86FD-845EF5E473F4}\gpreport.xml","<?xml version=""1.0"" encoding=""utf-16""?>"
我在原始帖子@PetAm I中添加了脚本的目标,是否遗漏了什么?这些路径对于meDamn@Matt来说是独一无二的。。你是对的。。我注意到了。我将把标题改为我真正需要做的事情。块引号掩盖了第3列中匹配的行。这是一行很长的文字。我将其更改为代码格式,那么,预期的结果应该是什么样的呢?
$ht = @()
$files = Get-ChildItem -recurse -Filter gpreport.xml
$files
foreach ($file in $files)
{
$path = $file.FullName
$lines = Get-Content $path
foreach ($line in $lines)
{
if ($match = $ht | where { $_.line -EQ $line })
{
$match.count = $match.count + 1
$match.Paths += $path
}
else
{
$ht += new-object PSObject -Property @{
Count = 1
Paths = @(, $path)
Line = $line
}
}
}
}
$ht
$ht.GetEnumerator() |
select Count, @{ n = 'Paths'; e = { $_.Paths -join '|' } }, Line |
Export-Csv c:\temp\NLG_GPO_Sort.csv