Recherche de site Web

Ajouter une nouvelle ligne dans PowerShell


Lors de l'écriture de la sortie du script dans la console ou un fichier texte, vous souhaitez souvent le formater pour la lisibilité. Un moyen courant de le faire dans PowerShell est d'utiliser des sauts de ligne, ce qui oblige la partie suivante à s'afficher sur une nouvelle ligne.

Les sauts de ligne sont toujours un peu délicats à bien gérer dans n'importe quel langage de script ou de programmation, mais en utilisant `n et `r, nous pouvons facilement forcer le contenu sur une nouvelle ligne.

Dans cet article, je vais vous montrer comment utiliser les caractères de nouvelle ligne dans PowerShell.

Nouvelle ligne dans PowerShell

Pour continuer la sortie dans PowerShell sur une nouvelle ligne, nous pouvons utiliser les caractères spéciaux `n et `r. Le premier est utilisé pour un saut de ligne, et le second est utilisé pour le retour chariot. Maintenant, cette différence est importante à comprendre lorsqu'il s'agit d'utiliser ces caractères.

Le caractère `n (Saut de ligne) est le caractère de nouvelle ligne (ASCII 10, LF), qui déplace le curseur vers la ligne suivante.

Write-Host "String that we want to show `non two lines"

Result
String that we want to show 
on two lines

Il est maintenant important de noter dans l'exemple ci-dessus qu'on ne doit pas ajouter d'espace après le caractère de nouvelle ligne. Si vous ajoutiez un espace après le caractère spécial, alors la nouvelle ligne commencerait par un espace, ce que vous ne souhaitez pas.

Le `r est le caractère de retour chariot (ASCII 13, CR), qui déplace le curseur au début de la ligne. Si vous utilisez cela sans le caractère de saut de ligne, vous écraserez votre sortie existante, comme vous pouvez le voir dans l'exemple ci-dessous :

Write-Host "String that we want to show `ron a new line"

Result
on a new linee want to show

PowerShell va d'abord écrire la sortie « Chaîne que nous voulons montrer » puis le curseur est remis au début de la ligne, et le reste de la sortie « sur une nouvelle ligne » écrasera les premiers caractères de la chaîne existante.

Combinaison de `r et `n

Dans Windows, nous utilisons couramment les deux caractères spéciaux pour créer une nouvelle ligne. Ce n'est plus vraiment nécessaire de nos jours, mais de cette manière, vous pouvez être sûr que cela fonctionne avec toutes les applications sur Windows.

Si vous utilisez les scripts PowerShell uniquement sur des systèmes basés sur Unix, alors vous pouvez vous contenter d'utiliser uniquement le caractère de nouvelle ligne.

Donc, pour continuer la sortie sur une nouvelle ligne dans Windows, il est recommandé d'utiliser ce qui suit :

Write-Host "String that we want to show `n`ron two lines"

Lire un fichier tout en conservant les sauts de ligne

Lorsque vous lisez un fichier texte avec PowerShell, toutes les lignes seront par défaut formatées en une longue chaîne. Nous pouvons cependant conserver les informations de nouvelle ligne en utilisant le paramètre -raw avec la cmdlet Get-Content.

Le paramètre -raw lira l'intégralité du contenu du fichier, tout en préservant les sauts de ligne d'origine. De cette manière, lorsque vous sortez le script, les sauts de ligne seront affichés :

$fileContent = Get-Content -Path "C:\temp\multiline.txt" -Raw

Write-Host $fileContent

Écrire des commandes sur une nouvelle ligne

Une autre question courante avec PowerShell est de savoir comment écrire une partie d'une commande sur une nouvelle ligne. Les longues commandes sur une seule ligne sont plus difficiles à lire, donc parfois vous voulez continuer votre commande sur une nouvelle ligne.

La meilleure façon de faire cela est d'utiliser le Splatting, c'est une méthode où vous ajoutez des paramètres dans un tableau de hachage. Mais cela n'est pas toujours possible ou pratique. Dans ces cas, nous pouvons utiliser le caractère ` pour diviser la commande en nouvelle ligne.

L'exemple ci-dessous est peut-être un peu extrême, mais il vous donne une bonne idée de la façon dont le découpage de votre commande en plusieurs lignes améliore la lisibilité dans PowerShell :

Get-ChildItem -Path C:\Users `
              -Recurse `
              -Filter *.txt `
              -File `
              | Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-7) } `
              | Select-Object Name, CreationTime, Length `
              | Sort-Object CreationTime -Descending `
              | Format-Table -AutoSize

Conclure

L'utilisation de nouvelles lignes dans PowerShell améliore non seulement la lisibilité de votre sortie, mais aussi celle des longues commandes. En ce qui concerne les sauts de ligne dans la sortie, je recommande d'utiliser les deux caractères spéciaux pour une compatibilité maximale, mais gardez à l'esprit qu'il est également possible d'utiliser uniquement `n.

J'espère que cet article vous a plu, si vous avez des questions, laissez simplement un commentaire ci-dessous.