So maskieren Sie Leerzeichen in Dateipfaden in der Windows-Befehlszeile


Befehlszeilenumgebungen wie Windows Command Prompt und PowerShell verwenden Leerzeichen, um Befehle und Argumente zu trennen. Datei- und Ordnernamen können jedoch auch Leerzeichen enthalten. Um einen Dateipfad mit einem Leerzeichen anzugeben, müssen Sie „Escape“ verwenden.

Befehlszeile 101: Warum müssen Sie Leerzeichen verlassen?

Die „Flucht“ eines Charakters ändert seine Bedeutung. Wenn Sie beispielsweise ein Leerzeichen maskieren, behandelt die Shell es als Standard-Leerzeichen und nicht als Sonderzeichen, das Befehlszeilenargumente trennt.

Angenommen, Sie haben eine Textdatei, deren Inhalt Sie anzeigen möchten. Sie können dies mit dem Befehl type tun. Angenommen, die Textdatei befindet sich bei C:TestFile.txtDer folgende Befehl in der Eingabeaufforderung zeigt den Inhalt an:

type C:TestFile.txt

Genial. Was ist nun, wenn Sie dieselbe Datei bei haben? C:Test FolderTest File.txt? Wenn Sie versuchen, den folgenden Befehl auszuführen, funktioniert dies nicht – diese Leerzeichen im Dateipfad stören.

type C:Test FolderTest File.txt

In der Befehlszeile wird angenommen, dass Sie versuchen, nach einer aufgerufenen Datei zu suchen C:Test und sagt, dass es „den angegebenen Pfad nicht finden kann“.

Drei Möglichkeiten, Leerzeichen in Windows zu umgehen

Es gibt drei verschiedene Möglichkeiten, Dateipfade unter Windows zu umgehen:

  • Indem Sie den Pfad (oder Teile davon) in doppelte Anführungszeichen (”) setzen.
  • Durch Hinzufügen eines Carets (^) vor jedem Leerzeichen. (Dies funktioniert nur in der Eingabeaufforderung / CMD und scheint nicht bei jedem Befehl zu funktionieren.)
  • Durch Hinzufügen eines schwerwiegenden Akzentzeichens (`) vor jedem Leerzeichen. (Dies funktioniert nur in PowerShell, aber es funktioniert immer noch.)

Wir zeigen Ihnen, wie Sie jede Methode anwenden.

Fügen 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. Mit unserem obigen Beispielbefehl führen wir stattdessen nur Folgendes aus:

type "C:Test FolderTest File.txt"

Sie können Teile des Pfads in Anführungszeichen setzen, wenn Sie dies bevorzugen. Angenommen, Sie hatten eine Datei mit dem Namen File.txt in diesem Ordner. Sie können Folgendes tun:

type C:"Test Folder"File.txt

Dies ist jedoch nicht erforderlich. In den meisten Fällen können Sie nur Anführungszeichen für den gesamten Pfad verwenden.

Diese Lösung funktioniert sowohl in der herkömmlichen Eingabeaufforderungsumgebung (CMD) als auch in Windows PowerShell.

Platzieren Sie Leerzeichen in doppelten Anführungszeichen in der Eingabeaufforderung

Verwandt :  8 Möglichkeiten, Ihr Discord-Konto zu personalisieren

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

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

Hier ist das Problem: Während es funktionieren sollte und manchmal funktioniert, funktioniert es nicht immer. Der Umgang mit diesem Zeichen über 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

Fügen Sie einen Space Escape-Fehler in die Eingabeaufforderung ein


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

C:Test^ FolderTest^ File.txt

Caret-Speicherplatz, der an der Eingabeaufforderung aus dem Job entweicht

Wann funktioniert es? Nun, basierend auf unserer Forschung scheint es mit einigen Apps zu funktionieren und nicht mit anderen. Ihr Kilometerstand kann je nach verwendetem Steuerelement variieren. Der Umgang mit diesem Zeichen über die Eingabeaufforderung ist seltsam. Probieren Sie es mit einem beliebigen Befehl aus, wenn Sie interessiert sind – es kann funktionieren oder nicht.

Aus Gründen der Konsistenz empfehlen wir, dass Sie sich in der Eingabeaufforderung an doppelte Anführungszeichen halten oder zu PowerShell wechseln und die unten stehende Methode mit schwerwiegenden Akzenten verwenden.

PowerShell: Verwenden Sie das schwerwiegende Akzentzeichen (`)

PowerShell verwendet das Grabzeichen (`) als Escapezeichen. 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

Jeder schwerwiegende Akzent weist PowerShell an, dem nächsten Charakter zu entkommen.

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

Entfliehen Sie Räumen mit starkem Akzent in PowerShell


Wenn Sie mit UNIX-ähnlichen Betriebssystemen wie Linux und macOS vertraut sind, können Sie es gewohnt sein, das Zeichen backslash () vor einem Leerzeichen zu verwenden, um es zu umgehen. Windows verwendet es für normale Dateipfade, daher funktioniert es nicht. Die Zeichen caret (^) und schwerwiegender Akzent (`) sind die Windows-Version des Backslash, je nachdem, welche Befehlszeilen-Shell Sie verwenden.

Moyens Staff
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.