Private/Write-CenteredText.ps1

function Write-CenteredText {
    <#
    .SYNOPSIS
    Print Text with Center Justification sort of
     
    .DESCRIPTION
    Kind of sort of in a way make it look centered
     
    .PARAMETER Caption
    Text to print
     
    .PARAMETER Filler
    Characters to print before and after as a divider
     
    .PARAMETER MaxLen
    Total number of characters to show on the line
     
    .EXAMPLE
    An example
     
    .NOTES
    General notes
    #>


    param (
        [parameter(Mandatory=$True)]
        [ValidateNotNullOrEmpty()]
        [string] $Caption,
        [parameter(Mandatory=$False)]
        [string] $Filler = "*",
        [parameter(Mandatory=$False)]
        [int] $MaxLen = 73
    )
    $caplen  = $Caption.Length + 2
    $remlen  = $MaxLen - $caplen
    $halflen = [math]::Round($remlen/2,0)
    $text = "$($Filler*$halflen) $Caption $($Filler*$halflen)"
    if ($text.Length -lt $MaxLen) {
        $remx = $MaxLen - $text.Length
        $text += "$($Filler*$remx)"
    }
    Write-Output $text
}