powershell:将文件中的特定行写入格式化的csv
下面的代码为我提供了到console的正确输出。但我需要一个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
$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
?