« Programmation PowerShell/Formatage de l'affichage » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 4 :
 
= Un point sur les données dans PowerShell =
Retenez bien que PowerShell est un shell objet. En bref, là ou les anciens shell manipulemanipulent des chaines de caractèrecaractères, PowerShell manipule des objets du framework .NET
 
= Formatage de l'affichage =
Les objets manipulés par PowerShell ont une méthode ToString() qui se charge de noter la description ou la valeur de l'objet au format de chaînechaînes de caractèrecaractères. Cette méthode est parfois appelée automatiquement par PowerShell mais vous pouvez l'appeler explicitement aussi. Prenons! l'expression''Prenons 3 fois 412 qui donneest une valeur typée entier''' :
(3*4)12 | get-member
En exécutant l'instruction ci-dessus, vous constatez qu'il est écrit '''TypeName : System.Int32'''
 
Ci-dessous, une commandlette pour afficher dans la console la valeur
Write-Host (3*4)12
Automatiquement, PowerShell fait ceci :
Write-Host (3*412).ToString()
Les types d'objet définissent un formatage par défaut et vous pouvez le constater avec une date :
# différents formats par défaut ...
Get-Date
Write-Host (Get-Date).ToString()
Lorsque vous en aurez besoin, sachez simplement que vous pouvez modifier cela. Voici un exemple pour la date :
Write-Host (Get-Date).ToString("d MMMM yyyy")
La notion du type des données peut être déroutante lorsque vous débutez. Utilisez abusivement Get-Member pour identifier le type de données renvoyé par PowerShell !
 
=Important=
Dans la mesure du possible, travaillez avec des objets et non avec des chaines de caractères !
 
C'est la notion principale à retenir : avec PowerShell, on agit sur des objets du framework .NET et pas uniquement sur du texte comme les anciens shells !
 
=Formatage de nombreuses données=
çaCela devient important lorsque vous traitez des listes par exemple avec
Get-Process
La commandlette ci-dessus renvoie une collection de zéro à beaucoup d'éléments typés System.Diagnostics.Process.
 
Vous pouvez l'afficher en version texte avec la commandlette suivante :
Get-Process | Format-Table -Property ProcessName, StartTime
La commandlette ciFormat-dessusTable renvoie dudes textedonnées formatées ! DoncElles n'ont plus leur type d'origine et donc, vous ne pouvez plus travailler les objets par la suite car la date StartTime est une chaîne de caractère suite au traitement de formatage. '''En résumé, les commandes de formatage sont à appliquer en fin de traitement.'''
 
Vous pouvez créer vos propres colonnes, etc. Mais je vous conseille d'ignorer tout cela car le but de PowerShell est de traiter les données et non du texte, vos fonctions et vos scripts devront renvoyer des objets et non du texte.
 
Formatage == vu == pas très important == fini au revoir ...