So umgehen Sie Leerzeichen in Dateipfaden in der Windows-Befehlszeile

Befehlszeilenumgebungen wie die Windows-Eingabeaufforderung und PowerShell verwenden Leerzeichen, um Befehle und Argumente zu trennen – aber Datei- und Ordnernamen können auch Leerzeichen enthalten. Um einen Dateipfad mit einem Leerzeichen darin anzugeben, müssen Sie ihn „escapen“.

Befehlszeile 101: Warum Sie Leerzeichen verlassen müssen

Das „Escapen“ eines Zeichens ändert seine Bedeutung. Wenn Sie beispielsweise ein Leerzeichen mit Escapezeichen versehen, behandelt die Shell es wie ein Standard-Leerzeichen und nicht wie ein Sonderzeichen, das Befehlszeilenargumente trennt.

Angenommen, Sie haben eine Textdatei, deren Inhalt Sie sehen möchten. Das geht mit dem type-Befehl. Angenommen, die Textdatei befindet sich unter C:TestFile.txt, zeigt der folgende Befehl in der Eingabeaufforderung ihren Inhalt:

type C:TestFile.txt

Toll. Was ist nun, wenn Sie dieselbe Datei unter C:Test FolderTest File.txt haben? Wenn Sie versuchen, den folgenden Befehl auszuführen, funktioniert es nicht – diese Leerzeichen im Dateipfad stehen im Weg.

type C:Test FolderTest File.txt

Die Befehlszeile denkt, dass Sie versuchen, nach einer Datei namens C:Test zu suchen, und sagt, dass sie den angegebenen Pfad nicht finden kann.

Drei Möglichkeiten, Leerzeichen unter Windows zu verlassen

Es gibt drei verschiedene Möglichkeiten, wie Sie Dateipfade unter Windows maskieren können:

  So ändern und passen Sie ein Design unter Windows 11 an

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 mit jedem Befehl zu funktionieren.)
Durch Hinzufügen eines gravierenden Akzentzeichens ( ` ) vor jedem Leerzeichen. (Dies funktioniert nur in PowerShell, aber es funktioniert immer.)

Wir zeigen Ihnen, wie Sie jede Methode anwenden.

Schließen Sie den Pfad in Anführungszeichen ein ( ” )

Die Standardmethode, um sicherzustellen, dass Windows einen Dateipfad ordnungsgemäß behandelt, besteht darin, ihn in doppelte Anführungszeichen ( ” ) einzuschließen. Bei unserem obigen Beispielbefehl würden wir stattdessen einfach Folgendes ausführen:

type "C:Test FolderTest File.txt"

Sie können Teile des Pfads tatsächlich in Anführungszeichen setzen, wenn Sie dies bevorzugen. Nehmen wir beispielsweise an, Sie hätten in diesem Ordner eine Datei namens File.txt. Sie könnten Folgendes ausführen:

type C:"Test Folder"File.txt

Dies ist jedoch nicht erforderlich – 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 Eingabeaufforderungsumgebung (CMD) als auch in Windows PowerShell.

  HP Laptop verbindet sich nicht mit WiFi unter Windows 10 (GELÖST)

Manchmal: Verwenden Sie das Caret-Zeichen, um Leerzeichen zu entkommen ( ^ )

In der Eingabeaufforderung können Sie mit dem Caret-Zeichen ( ^ ) Leerzeichen verlassen – theoretisch. Fügen Sie es einfach vor jedem Leerzeichen im Dateinamen hinzu. (Sie finden dieses Zeichen in der Zahlenreihe Ihrer Tastatur. Um das Caret-Zeichen einzugeben, drücken Sie Umschalt+6.)

Hier ist das Problem: Obwohl dies funktionieren sollte und es manchmal tut, funktioniert es nicht immer. Die Handhabung dieses Zeichens durch die Eingabeaufforderung ist seltsam.

Mit unserem Beispielbefehl würden Sie beispielsweise Folgendes ausführen, und es würde nicht funktionieren:

type C:Test^ FolderTest^ File.txt

Wenn wir andererseits versuchen, unsere Datei direkt zu öffnen, indem wir ihren Pfad in die Eingabeaufforderung eingeben, können wir sehen, dass das Caret-Zeichen die Leerzeichen richtig maskiert:

C:Test^ FolderTest^ File.txt

Wann funktioniert es also? Nun, basierend auf unseren Recherchen scheint es mit einigen Anwendungen zu funktionieren und mit anderen nicht. Ihre Laufleistung kann je nach verwendetem Befehl variieren. Die Handhabung dieses Zeichens durch die Eingabeaufforderung ist seltsam. Probieren Sie es mit dem von Ihnen verwendeten Befehl aus, wenn Sie interessiert sind – es kann funktionieren oder auch nicht.

  So bringen Sie Ubuntu und Bash unter Windows 10 zum Laufen

Aus Konsistenzgründen empfehlen wir Ihnen, in der Eingabeaufforderung bei doppelten Anführungszeichen zu bleiben – oder zu PowerShell zu wechseln und die Methode mit dem Graviszeichen unten zu verwenden.

PowerShell: Verwenden Sie das Akzentzeichen Grave ( ` )

PowerShell verwendet das Graviszeichen ( ` ) als Escape-Zeichen. Fügen Sie es einfach vor jedem Leerzeichen im Dateinamen hinzu. (Sie finden dieses Zeichen über der Tabulatortaste und unter der Esc-Taste auf Ihrer Tastatur.)

type C:Test` FolderTest` File.txt

Jedes gravierende Akzentzeichen weist PowerShell an, das folgende Zeichen zu maskieren.

Beachten Sie, dass dies nur in der PowerShell-Umgebung funktioniert. Sie müssen das Caret-Zeichen in der Eingabeaufforderung verwenden.

Wenn Sie mit UNIX-ähnlichen Betriebssystemen wie Linux und macOS vertraut sind, sind Sie vielleicht daran gewöhnt, den umgekehrten Schrägstrich ( ) vor einem Leerzeichen zu verwenden, um es zu maskieren. Windows verwendet dies für normale Dateipfade, daher funktioniert es nicht – das Caret-Zeichen ( ^ ) und das Grabzeichen ( ` ) sind die Windows-Version des umgekehrten Schrägstrichs, je nachdem, welche Befehlszeilen-Shell Sie verwenden.