Befehlszeilenumgebungen wie die Windows-Eingabeaufforderung und PowerShell verwenden Leerzeichen, um Befehle und Argumente zu trennen – Datei- und Verzeichnisnamen können jedoch auch Leerzeichen enthalten. Um einen Dateipfad anzugeben, der ein Leerzeichen enthält, müssen Sie ihn mit einem Escapezeichen versehen.
Warum Escape-Spaces?
„Flucht“ oder das Entkommen eines Zeichens ändert seine Bedeutung. Wenn Sie beispielsweise ein Leerzeichen maskieren, wird es von der Shell als Leerzeichen und nicht als Sonderzeichen zur Trennung von Befehlszeilenargumenten behandelt.
Angenommen, Sie haben eine Textdatei und möchten den Inhalt anzeigen. Sie können dies mit dem Befehl type tun. Angenommen, die Textdatei befindet sich unter C:\Test\File.txt , zeigt der folgende Befehl in der Eingabeaufforderung ihren Inhalt an:
type C:\Test\File.txt
Was ist nun, wenn Sie dieselbe Datei unter C:\Test Folder\Test File.txt haben ? Wenn Sie versuchen, den folgenden Befehl auszuführen, funktioniert er nicht – die Leerzeichen im Dateipfad stören.
type C:\Test Folder\Test File.txt
Die Befehlszeile geht davon aus, dass Sie versuchen, nach einer Datei mit dem Namen C:\Test zu suchen , und sagt: „ Der angegebene Pfad kann nicht gefunden werden “ (der angegebene Pfad kann nicht gefunden werden).

Die Befehlszeile kann den angegebenen Pfad nicht finden
3 Möglichkeiten, Leerzeichen unter Windows zu umgehen
Es gibt drei verschiedene Möglichkeiten, Dateipfade unter Windows zu maskieren:
- Indem Sie den Pfad (oder Teile davon) in doppelte Anführungszeichen ("") setzen.
- Durch Hinzufügen eines Caret-Zeichens (^) vor jedem Leerzeichen. (Dies funktioniert nur in der Eingabeaufforderung/CMD und scheint nicht bei jedem Befehl zu funktionieren).
- Durch Hinzufügen eines Akzentzeichens (`) vor jedem Leerzeichen. (Dies funktioniert nur in PowerShell, aber es funktioniert immer).
In diesem Artikel erfahren Sie, wie Sie die einzelnen Methoden verwenden.
Setzen Sie den Pfad in Anführungszeichen
Die Standardmethode, um sicherzustellen, dass Windows einen Dateipfad ordnungsgemäß verarbeitet, besteht darin, ihn in doppelte Anführungszeichen ("") zu setzen. Mit dem obigen Beispielbefehl würde der Befehl beispielsweise wie folgt ausgeführt:
type "C:\Test Folder\Test File.txt"
Wenn Sie möchten, können Sie Teile des Pfads auch in Anführungszeichen setzen. Angenommen, Sie haben in diesem Ordner eine Datei mit dem Namen „File.txt“ . Sie können Folgendes ausführen:
type C:\"Test Folder"\File.txt
Das ist jedoch nicht notwendig. In den meisten Fällen können Sie den gesamten Pfad einfach in Anführungszeichen setzen.
Diese Lösung funktioniert sowohl in der herkömmlichen CMD-Umgebung (Command Prompt) als auch in Windows PowerShell.

Setzen Sie den Pfad in Anführungszeichen
Verwenden Sie das Caret-Zeichen (^) vor einem Leerzeichen
In der Eingabeaufforderung können Sie mit dem Caret-Zeichen (^) theoretisch Leerzeichen umgehen. Fügen Sie es einfach vor jedem Leerzeichen im Dateinamen ein. (Sie finden dieses Zeichen in der Zahlenreihe Ihrer Tastatur. Um das Caret-Zeichen einzugeben, drücken Sie Umschalt + 6 ).
Das Problem ist, dass dies zwar effektiv ist, aber nicht immer funktioniert. Der Umgang der Eingabeaufforderung mit diesem Zeichen ist seltsam.
Wenn Sie beispielsweise mit dem Beispielbefehl Folgendes ausführen, funktioniert der Befehl nicht:
type C:\Test^ Folder\Test^ File.txt

Der obige Befehl funktioniert nicht
Wenn Sie andererseits versuchen, Ihre Datei direkt zu öffnen, indem Sie ihren Pfad in die Eingabeaufforderung eingeben, werden Sie möglicherweise feststellen, dass das Caret-Zeichen dem Leerzeichen ordnungsgemäß entgeht:
C:\Test^ Folder\Test^ File.txt

Das Caret-Zeichen entgeht Leerzeichen ordnungsgemäß
Wann funktioniert es? Recherchen zufolge scheint es nur mit einigen Apps zu funktionieren. Abhängig vom verwendeten Befehl können sich die Dinge ändern. Der Umgang der Eingabeaufforderung mit diesem Zeichen ist seltsam. Versuchen Sie es mit dem von Ihnen verwendeten Befehl, es kann sein, dass es funktioniert oder auch nicht.
Aus Gründen der Konsistenz empfiehlt der Artikel die Verwendung doppelter Anführungszeichen in der Eingabeaufforderung oder den Wechsel zu PowerShell und die Verwendung der folgenden Methode.
Verwenden Sie Akzentzeichen (`)
PowerShell verwendet das Akzentzeichen (`) als Escape-Zeichen. Fügen Sie es einfach vor jedem Leerzeichen im Dateinamen ein. (Sie finden dieses Zeichen über der Tab- Taste und unter der Esc- Taste auf Ihrer Tastatur).
type C:\Test` Folder\Test` File.txt
Für jedes akzentuierte Zeichen muss PowerShell das folgende Zeichen maskieren.
Beachten Sie, dass dies nur in PowerShell-Umgebungen funktioniert. Sie müssen das Caret-Zeichen in der Eingabeaufforderung verwenden.

Verwenden Sie Akzentzeichen (`)
Wenn Sie mit UNIX-ähnlichen Betriebssystemen wie Linux und macOS vertraut sind, ist Ihnen möglicherweise die Verwendung des Backslash-Zeichens (\) vor einem Leerzeichen als Escapezeichen vertraut. Windows verwendet dieses Zeichen für normale Dateipfade, daher funktioniert es nicht. Die Zeichen Caret (^) und Akzent (`) sind die Windows-Version des Backslashs, abhängig von der von Ihnen verwendeten Befehlszeilen-Shell.
Mehr sehen: