Website-Suche

Eine neue Zeile in PowerShell hinzufügen


Wenn Sie Skriptausgaben an die Konsole oder eine Textdatei schreiben, möchten Sie diese oft zur besseren Lesbarkeit formatieren. Eine gängige Methode dafür in PowerShell ist die Verwendung von Zeilenumbrüchen, die den nächsten Teil der Ausgabe in einer neuen Zeile anzeigt.

Zeilenumbrüche sind in jeder Skript- oder Programmiersprache immer etwas knifflig, aber durch die Verwendung von `n und `r können wir den Inhalt problemlos in eine neue Zeile zwingen.

In diesem Artikel werde ich Ihnen zeigen, wie Sie die neuen Zeilenzeichen in PowerShell verwenden.

Neue Zeile in PowerShell

Um die Ausgabe in PowerShell in einer neuen Zeile fortzusetzen, können wir die Sonderzeichen `n und `r verwenden. Das erste wird für einen Zeilenumbruch verwendet, und das letzte für den Wagenrücklauf. Dieser Unterschied ist wichtig zu verstehen, wenn es darum geht, diese Zeichen zu verwenden.

Das `n (Zeilenumbruch) Zeichen ist das neue Zeilenzeichen (ASCII 10, LF), das den Cursor zur nächsten Zeile bewegt.

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

Result
String that we want to show 
on two lines

Es ist wichtig zu beachten, dass wir im obigen Beispiel nach dem Zeilenumbruchzeichen keinen Leerraum hinzufügen. Wenn Sie nach dem Sonderzeichen ein Leerzeichen hinzufügen würden, würde die neue Zeile mit einem Leerzeichen beginnen, was Sie nicht möchten.

Das `r ist das Wagenrücklaufzeichen (ASCII 13, CR), das den Cursor an den Anfang der Zeile zurückbewegt. Wenn Sie dies ohne das Zeilenumbruchzeichen verwenden würden, würden Sie Ihre bestehende Ausgabe überschreiben, wie Sie im folgenden Beispiel sehen können:

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

Result
on a new linee want to show

PowerShell wird zuerst die Ausgabe „Zeichenfolge, die wir anzeigen möchten“ schreiben und dann wird der Cursor wieder an den Anfang der Zeile gesetzt, und der Rest der Ausgabe „in einer neuen Zeile“ wird die ersten Zeichen der vorhandenen Zeichenfolge überschreiben.

Kombination von `r und `n

In Windows verwenden wir üblicherweise beide Sonderzeichen, um eine neue Zeile zu erstellen. Das ist heutzutage nicht wirklich mehr notwendig, aber auf diese Weise kannst du sicherstellen, dass es mit allen Anwendungen unter Windows funktioniert.

Wenn Sie die PowerShell-Skripte nur auf Unix-basierten Systemen verwenden, dann können Sie dies nur mit dem Zeilenumbruchzeichen tun.

Um die Ausgabe in Windows auf einer neuen Zeile fortzusetzen, wird empfohlen, Folgendes zu verwenden:

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

Eine Datei lesen und Zeilenumbrüche beibehalten

Wenn Sie eine Textdatei mit PowerShell lesen, werden standardmäßig alle Zeilen in einen langen String formatiert. Wir können jedoch die Zeileninformationen beibehalten, indem wir den -raw-Parameter mit dem Get-Content Cmdlet verwenden.

Der -raw Parameter liest den gesamten Inhalt der Datei und bewahrt die originalen Zeilenumbrüche. Auf diese Weise werden die Zeilenumbrüche beim Ausgeben des Skripts angezeigt:

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

Write-Host $fileContent

Befehle in einer neuen Zeile schreiben

Eine weitere häufige Frage zu PowerShell ist, wie man einen Teil eines Befehls in einer neuen Zeile schreiben kann. Lange Befehle in einer einzigen Zeile sind schwerer zu lesen, daher möchte man manchmal seinen Befehl in einer neuen Zeile fortsetzen.

Der beste Weg, dies zu tun, ist die Verwendung von Splatting. Dies ist eine Methode, bei der Sie Parameter in eine Hashtable einfügen. Aber das ist nicht immer möglich oder praktisch. In diesen Fällen können wir das `-Zeichen verwenden, um den Befehl in eine neue Zeile zu unterbrechen.

Das folgende Beispiel ist vielleicht ein bisschen extrem, aber es gibt Ihnen eine gute Vorstellung davon, wie das Aufteilen Ihres Kommandos in mehrere Zeilen die Lesbarkeit in PowerShell verbessert:

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

Zusammenfassung

Die Verwendung von neuen Zeilen in PowerShell verbessert nicht nur die Lesbarkeit Ihrer Ausgaben, sondern auch bei langen Befehlen. Wenn es um Zeilenumbrüche in der Ausgabe geht, empfehle ich, beide Sonderzeichen für maximale Kompatibilität zu verwenden, aber beachten Sie, dass es auch möglich ist, nur `n zu verwenden.

Ich hoffe, dir hat dieser Artikel gefallen. Wenn du Fragen hast, hinterlasse einfach einen Kommentar unten.