# Escape-Sequenzen

Escape-Sequenzen sind spezielle Zeichenkombinationen, mit denen sich **Steuerzeichen** innerhalb von Strings darstellen lassen, z. B. Zeilenumbrüche oder Tabs.

In PowerShell wird dafür das **Backtick-Zeichen** verwendet:

```
`
```

---

## **Grundlagen**

Escape-Sequenzen funktionieren **nur in doppelt-quoted Strings**:

```powershell
"Text`nNeue Zeile"   # funktioniert
'Text`nNeue Zeile'   # kein Effekt
```

---

## Wichtige Escape-Sequenzen

<table id="bkmrk-sequenz-bedeutung-be"><thead><tr><th>Sequenz</th><th>Bedeutung</th><th>Beschreibung</th></tr></thead><tbody><tr><td>``n`</td><td>New Line</td><td>Zeilenumbruch</td></tr><tr><td>``r`</td><td>Carriage Return</td><td>Cursor an den Anfang der Zeile</td></tr><tr><td>``r`n`</td><td>Windows-Zeilenumbruch</td><td>Kombination aus CR + LF</td></tr><tr><td>``t`</td><td>Tab</td><td>Tabulator</td></tr><tr><td>``</td><td>Backtick</td><td>Gibt ein Backtick-Zeichen aus</td></tr><tr><td>``"`</td><td>Anführungszeichen</td><td>Doppelte Quotes innerhalb von Strings</td></tr></tbody></table>

---

## **Beispiele**

### Zeilenumbruch

```powershell
"Hallo`nWelt"
```

Ausgabe:

```
Hallo
Welt
```

---

### Tabulator

```powershell
"Name`tAlter"
```

Ausgabe:

```
Name    Alter
```

---

### Windows-Zeilenumbruch

```powershell
"Hallo`r`nWelt"
```

---

## Verhalten in Dateien

Beim Arbeiten mit Dateien (z. B. `Out-File`, `Set-Content`) wird häufig ``r`n` verwendet, da dies dem Windows-Standard entspricht.

---

## **Typische Stolperfallen**

### 1. Falsche Anführungszeichen

```powershell
'Hallo`nWelt'   # ❌ kein Umbruch
```

### 2. Backtick übersehen

Das Escape-Zeichen ist **kein Apostroph (`'`)**, sondern:

```
`
```

### 3. Unsichtbare Zeichen

Escape-Sequenzen sind nicht sichtbar im Code, wirken aber auf die Ausgabe. Das macht Debugging manchmal… sagen wir… charakterbildend.

---

## **Alternative Methoden**

### .Split() (kein Escape, aber oft verwandt)

```powershell
"text1,text2" -split ","
```

Oder:

```powershell
"text1,text2".Split(",")

```

`.Split()` ist eine **.NET String-Methode**, kein Escape-Mechanismus, wird aber oft im gleichen Kontext verwendet, wenn Strings verarbeitet werden.

---

## Fazit

Escape-Sequenzen sind ein einfacher Weg, um Strings zu formatieren, ohne sie über mehrere Zeilen schreiben zu müssen.

Das wichtigste:

- Backtick = Escape
- Nur in `" "` aktiv
- ``n` für schnellen Zeilenumbruch
- ``r`n` für Windows-Kompatibilität