So maskieren Sie Leerzeichen in Dateipfaden auf der Windows-Befehlszeile

Inhalt

Eingabeaufforderungsfenster in Windows 10

Befehlszeilenumgebungen wie die Windows-Eingabeaufforderung und PowerShell verwenden Leerzeichen, um Befehle und Argumente zu trennen, Datei- und Ordnernamen können aber auch Leerzeichen enthalten. So geben Sie einen Dateipfad mit einem Leerzeichen an, soll “Flucht”.

Befehlszeile 101: Warum musst du den Leerzeichen entkommen?

“Flucht” eines Zeichens ändert seine Bedeutung. Als Beispiel, Wenn Sie ein Leerzeichen mit Escapezeichen versehen, behandelt die Shell es als Standard-Leerzeichen und nicht als Sonderzeichen, das die Befehlszeilenargumente trennt.

Als Beispiel, Angenommen, Sie haben eine Textdatei, deren Inhalt Sie sehen möchten. Sie können dies mit dem Befehl type tun. Angenommen, die Textdatei ist in C:TestFile.txt, der folgende Befehl an der Eingabeaufforderung zeigt seinen Inhalt an:

Typ C:TestDatei.txt

Exzellent. Jetzt, Was ist, wenn Sie dieselbe Datei in haben? C:Test FolderTest File.txt? Wenn Sie versuchen, den folgenden Befehl auszuführen, es wird nicht funktionieren: Diese Leerzeichen im Dateipfad sind im Weg.

Typ C:TestordnerTestdatei.txt

Die Befehlszeile denkt, dass Sie versuchen, eine Datei namens . zu finden C:Test und sagt, dass “Der angegebene Pfad kann nicht gefunden werden”.

Eingabeaufforderungsfehler, wenn Leerzeichen nicht maskiert sind

Drei Alternativen zum Escape-Space in Windows

Es gibt drei verschiedene Möglichkeiten, Dateipfade in Windows zu maskieren:

  • Einschließlich des Pfades (oder Teile davon) in doppelten Anführungszeichen (”).
  • Hinzufügen eines Caretzeichens (^) vor jedem Leerzeichen. (Dies funktioniert nur in der Eingabeaufforderung / CMD, und es scheint nicht mit allen Befehlen zu funktionieren).
  • Hinzufügen eines Zeichens mit ernstem Akzent (`) 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 korrekt behandelt, besteht darin, ihn in doppelte Anführungszeichen zu setzen (”). Als Beispiel, mit unserem Beispielbefehl oben, wir würden stattdessen einfach Folgendes ausführen:

Typ "C:TestordnerTestdatei.txt"

Genau genommen, Sie können Teile des Pfads in Anführungszeichen setzen, wenn Sie es vorziehen. Als Beispiel, Nehmen wir an, Sie haben eine Datei namens File.txt in diesem Ordner. Sie könnten Folgendes ausführen:

Typ C:"Testordner"Datei.txt

Trotz dieses, Das ist nicht nötig; In den meisten Fällen, Sie können im gesamten Pfad Anführungszeichen verwenden.

Diese Lösung funktioniert sowohl in der traditionellen Eingabeaufforderungsumgebung (CMD) wie in Windows PowerShell.

Fügen Sie an der Eingabeaufforderung Leerzeichen in doppelte Anführungszeichen ein

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

An der Eingabeaufforderung, das Caret (^) ermöglicht es Ihnen, den Räumen zu entkommen, in der Theorie. 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ücke Shift + 6).

Hier ist das Problem: obwohl das funktionieren sollte, und manchmal tut es das, es geht nicht immer. Der Umgang mit der Eingabeaufforderung dieses Zeichens ist seltsam.

Als Beispiel, mit unserem Beispielbefehl, Ich würde folgendes ausführen und es würde nicht funktionieren:

Typ C:Test^ OrdnerTest^ Datei.txt

Caret-Leerzeichen-Escape-Fehler an der Eingabeaufforderung

Auf der anderen Seite, wenn wir versuchen, unsere Datei direkt zu öffnen, indem wir ihren Pfad an der Eingabeaufforderung eingeben, Wir können sehen, dass das Caret Leerzeichen korrekt abdeckt:

C:Test^ OrdnerTest^ Datei.txt

Caret-Leerzeichen beim Arbeiten an der Eingabeaufforderung

Dann, Wann funktioniert es? Brunnen, nach unserer Recherche, scheint mit einigen Apps zu funktionieren und mit anderen nicht. Ihr Kilometerstand kann je nach verwendetem Befehl variieren. Der Umgang mit der Eingabeaufforderung dieses Zeichens ist seltsam. Probieren Sie es mit jedem Befehl aus, den Sie verwenden, wenn Sie interessiert sind, es kann funktionieren oder auch nicht.

Um die Konsistenz zu erhalten, Wir empfehlen Ihnen, sich an die doppelten Anführungszeichen an der Eingabeaufforderung zu halten, oder wechseln Sie zu PowerShell und verwenden Sie die unten stehende Grave-Akzent-Methode.

Power Shell: Verwenden Sie den ernsten Akzentzeichen (`)

PowerShell verwendet den Grave-Akzent-Charakter (`) als Escape-Zeichen. Fügen Sie es einfach vor jedem Leerzeichen im Dateinamen hinzu. (Sie finden dieses Zeichen oberhalb der Tabulatortaste und unterhalb der Esc-Taste auf Ihrer Tastatur).

Typ C:Test` OrdnerTest` File.txt

Jedes Zeichen mit ernstem Akzent weist PowerShell an, dem nächsten Zeichen zu entkommen.

Bitte beachten Sie, dass dies nur in der PowerShell-Umgebung funktioniert. Sie müssen Caret in der Eingabeaufforderung verwenden.

Entkomme Grabstellen in PowerShell


Wenn Sie mit UNIX-ähnlichen Betriebssystemen wie Linux und macOS vertraut sind, Sie sind es vielleicht gewohnt, den umgekehrten Schrägstrich zu verwenden () vor einem Raum zum Entkommen. Windows verwendet dies für normale Dateipfade, es geht also nicht; Akzentzeichen (^) und ernster Akzent (`) sind die Windows-Version des Backslash, abhängig von der verwendeten Kommandozeilen-Shell.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.