Aller au contenu

Powershell - Message avec code couleur

·
code powershell
Jérémy Norgol
Auteur
Jérémy Norgol
Consultant ingénieur Linux Devops

Fonctions
#

Coloration textuelle
#

function Write-Color {
    param (
        [ValidateNotNullOrEmpty()]
        $ColorType,
        $Message
    )

    switch -Regex ( $ColorType )
    {
        '[Gg]reen|vert' { $fgcolor="Green" }
        '[Rr]ed|rouge' { $fgcolor="Red" }
        '[Ww]hite|blanc' { $fgcolor="White" }
        '[Yy]ellow|jaune' { $fgcolor="Yellow" }
        '[Cc]yan' { $fgcolor="Cyan" }
        '[Gg]ray' { $fgcolor="Cyan" }
        default { $fgcolor=1 }
    }

    Write-Host "$Message" -ForegroundColor $fgcolor -NoNewLine
}

Mise en forme textuel - Type bannière
#

Dépendance Necessite la fonction Write-Color du point précédent.
function Write-Banner {
        param (
        [ValidateNotNullOrEmpty()]
        $BannerType,
        $Message
    )

    switch -Regex ( $BannerType )
    {
        'ok' { $fgcolor="Green"; $bannertext=" OK " }
        'ko' { $fgcolor="Red"; $bannertext="KO" }
        'up' { $fgcolor="Green"; $bannertext=" UP " }
        'down' { $fgcolor="Green"; $bannertext="DOWN" }
        'error|erreur' { $fgcolor="Red"; $bannertext = "ERR " }
        'warning|warn' { $fgcolor="Yellow"; $bannertext = "WARN" }
        'info' { $fgcolor="Cyan"; $bannertext = "INFO" }
        'debug' { $fgcolor="Gray"; $bannertext = "DEBUG" }
        default { $fgcolor=1 }
    }
    Write-Color "White" "["
    Write-Color "$fgcolor" "$bannertext"
    Write-Color "White" "] - $Message"
    Write-Output ""
}

Cas d’utilisation
#

Mini script de résolution DNS avec retour de message sur la réussite ou non de l’opération


$Domaine = "jeremy.norgol.fr"

Write-Banner "info" "Résolution en cours de: $Domaine"
try {
    # Résolution du nom de domaine
    $result = Resolve-DnsName -Name $Domaine -ErrorAction Stop
    # Si la résolution est réussie, affiche une bannière OK de couleur verte
    Write-Banner "ok" "Résolution de $Domaine;  $result.IPAddress"
} catch {
    # En cas d'erreur si le nom de domaine ne peut pas être résolu, affiche une bannière KO de couleur rouge
    Write-Banner "ko" "Impossible d'établir la résolution de nom du domaine: $Domaine"
}

Articles connexes

Python - Message avec code couleur
code python
Dépôt de paquets Linux en local
respository linux Redhat
Aide dans Red Hat Enterprise Linux
Redhat