powershell:将文件中的特定行写入格式化的csv

powershell:将文件中的特定行写入格式化的csv,powershell,export-to-csv,Powershell,Export To Csv,下面的代码为我提供了到console的正确输出。但我需要一个csv文件: $array = @{} $files = Get-ChildItem "C:\Temp\Logs\*" foreach($file in $files){ foreach($row in (Get-Content $file | select -Last 2)){ if($row -like "Total peak job memory used:*"){ $sp_memo

下面的代码为我提供了到console的正确输出。但我需要一个csv文件:

$array = @{}
$files = Get-ChildItem "C:\Temp\Logs\*"
foreach($file in $files){
    foreach($row in (Get-Content $file | select -Last 2)){
        if($row -like "Total peak job memory used:*"){
            $sp_memory = $row.Split(" ")[5]
            $array.Add(($file.BaseName),([double]$sp_memory))
            break
        }
    } 
}
$array.GetEnumerator() | sort Value -Descending |Format-Table -AutoSize
电流输出(控制台):

所需输出(csv):

为了提高性能,我希望避免使用数组,并将输出直接写入csv(无附加)


提前谢谢

将最后一行更改为-

$array.GetEnumerator() | sort Value -Descending | select @{l='FileName'; e={$_.Name}}, @{l='Memory (MB)'; e={$_.Value }} | Export-Csv -path $env:USERPROFILE\Desktop\Output.csv -NoTypeInformation
这将在桌面上为您提供名为
Output.csv
csv
文件。 我正在使用
计算属性
将列标题更改为
文件名
内存(MB)
,并将
$array
的输出管道化为
导出Csv
cmdlet


只是想让您知道,您的变量
$array
属于
哈希表类型,它不会存储重复的键。如果需要存储重复的键/值对,可以使用数组。只是建议!:)

哈希表还可以-我知道,我选择了一个不好的名称:)您的方式是在csv中输出数据,但列“Filename”和2Memory(MB)”在excel中连接在同一列(“a”)中。您如何将数据从
csv
传输到
excel