# Out-Asciichart # # Expects output ov "group-object" with the properties "name" and "Count" to produce a minimalisic Asciichart # # .\convertfrom-iislog.ps1 | group timestamp | .\out-asciichart.ps1 -Verbose # # 20231111 initiale Version Frank Carius [cmdletbinding()] param ( [Parameter(ValueFromPipeline)] $input, $width = 0 ) $buffer= $input | select name,count,barchart [long]$maxname= ($buffer | Foreach {$_.name.length + $_.count.tostring().length} | Measure-Object -Maximum).Maximum [long]$maxcount= ($buffer | Measure-Object -Property count -Maximum).Maximum Write-Verbose "TotalElements: $($buffer.count)" Write-Verbose "ConsoleWidth : $($Host.UI.RawUI.WindowSize.Width)" Write-Verbose "MaxName : $($maxname)" Write-Verbose "MaxCount : $($maxcount)" if ($width -eq 0) { $width = $Host.UI.RawUI.WindowSize.Width - $maxname - 10 } Write-Verbose "MaxBarWidth : $($width)" Foreach ($entry in $buffer) { $entry.barchart = ("").PadLeft(($entry.count/$maxcount*$width),"#") } $buffer