Passez à la vitesse supérieure avec les objets
Maintenant que vous savez tout sur les objets, ce paragraphe va vous permettre d’optimiser l’utilisation de vos objets, car même s’il est intéressant de disposer d’un petit script, sans aucun doute très pratique, il est encore plus intéressant de transformer ce script en une ligne de commande et pourquoi pas d’en faire un alias.
Voici quelques exemples :
Exemple Nº1
PS C:> Get-Command | Foreach {Get-Help $_ -detailed |Out-File -FilePath C:temp$_.txt –Encoding ASCII}
En détail:
1ère instruction : Get-Command on récupère la liste des commandes PowerShell
2èmeinstruction : Foreach {Get-Help $_ -detailed pour chaque élément on affiche l’aide détaillée
3èmeinstruction : Out-File -FilePath C:temp$_.txt –Encoding ASCII} on envoie le résultat de la commande précédente dans un fichier texte portant le nom de l’élément.
Résultat : Pour chaque commande PowerShell, on extrait l’aide associée (au format détaillé) et on l’envoie dans un fichier texte portant le nom de la commande.
Exemple N°2
PS C:> Get-ChildItem C:temp | ForEach-Object {$_.Get_extension().toLower()} | Sort-Object | Get-Unique| Out-File –FilePath C:tempextensions.txt -Encoding ASCII
Voilà de quoi vous mettre en jambe, cinq instructions sur une ligne le tout passant par des pipelines.
En détail :
1ère instruction : Get-ChildItem C:temp on va lister tout les éléments du répertoire C:temp
2èmeinstruction : ForEach-Object {$_.Get_extension().toLower()} pour chaque élément on va afficher son extension
3èmeinstruction : Sort-Object on va trier les éléments
4èmeinstruction : Get-Unique on supprime les occurrences en doublon
5èmeinstruction : Out-File –FilePath C:tempextensions.txt -Encoding ASCII on envoie le tout dans un fichier texte en mode ASCII.
Résultat : cette ligne de commande affiche dans un fichier texte les différentes extensions que l’on peut trouver dans le répertoire C:temp.