Connect with us

Wie man

So entkommen Sie Leerzeichen in Dateipfaden in der Windows-Befehlszeile

So entkommen Sie Leerzeichen in Dateipfaden in der Windows-Befehlszeile

Befehlszeilenumgebungen wie die Windows-Eingabeaufforderung 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 ihn «maskieren».

Befehlszeile 101: Warum Sie Leerzeichen entkommen müssen

Das „Entkommen“ eines Charakters ändert seine Bedeutung. Wenn Sie beispielsweise ein Leerzeichen maskieren, behandelt die Shell es wie ein Standard-Leerzeichen und nicht wie ein 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

Großartig. Was ist, 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

Die Befehlszeile denkt, Sie versuchen nach einer Datei mit dem Namen zu suchen C:Test und sagt, dass es «den angegebenen Pfad nicht finden kann».

Eingabeaufforderungsfehler, wenn keine Leerzeichen ausgeblendet werden

Drei Möglichkeiten, Leerzeichen unter Windows zu entkommen

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 Caret-Zeichens (^) 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 immer.)

Wir zeigen Ihnen, wie Sie die einzelnen Methoden 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 (”) zu setzen. Zum Beispiel würden wir mit unserem obigen Beispielbefehl stattdessen nur Folgendes ausführen:

type "C:Test FolderTest File.txt"

Sie können Teile des Pfads auch in Anführungszeichen setzen, wenn Sie dies bevorzugen. Angenommen, Sie hatten eine Datei mit dem Namen File.txt in diesem Ordner. 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 nur in Anführungszeichen setzen.

Diese Lösung funktioniert sowohl in der herkömmlichen CMD-Umgebung (Command Prompt) als auch in Windows PowerShell.

Leerzeichen in doppelte Anführungszeichen in der Eingabeaufforderung einschließen

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

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

Hier ist das Problem: Während dies funktionieren sollte und manchmal auch, funktioniert es nicht immer. Der Umgang der Eingabeaufforderung mit diesem Charakter ist seltsam.

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

type C:Test^ FolderTest^ File.txt

Fehler beim Entkommen des Caret-Speicherplatzes in der Eingabeaufforderung

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 die Leerzeichen ordnungsgemäß verlässt:

C:Test^ FolderTest^ File.txt

Caret Space entkommt der Arbeit in der Eingabeaufforderung

Wann funktioniert es? Nun, basierend auf unserer Forschung scheint es mit einigen Anwendungen zu funktionieren und nicht mit anderen. Ihr Kilometerstand kann je nach verwendetem Befehl variieren. Der Umgang der Eingabeaufforderung mit diesem Charakter ist seltsam. Probieren Sie es mit dem Befehl aus, den Sie verwenden, wenn Sie interessiert sind – es kann funktionieren oder nicht.

Aus Gründen der Konsistenz empfehlen wir, in der Eingabeaufforderung in doppelten Anführungszeichen zu bleiben – oder zu PowerShell zu wechseln und die unten stehende Methode mit schwerwiegenden Akzenten zu verwenden.

PowerShell: Verwenden Sie den Grave Accent Character (`)

PowerShell verwendet das Zeichen mit dem schwerwiegenden Akzent (`) 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 Zeichen mit schwerwiegendem Akzent weist PowerShell an, dem folgenden Zeichen zu entkommen.

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

Flucht vor Räumen mit dem schwerwiegenden Akzent in PowerShell

Wenn Sie mit UNIX-ähnlichen Betriebssystemen wie Linux und macOS vertraut sind, sind Sie möglicherweise daran gewöhnt, das Backslash-Zeichen () vor einem Leerzeichen zu verwenden, um es zu umgehen. Windows verwendet dies für normale Dateipfade, daher funktioniert es nicht – die Zeichen caret (^) und schwerwiegender Akzent (`) sind die Windows-Version von Backslash, je nachdem, welche Befehlszeilen-Shell Sie verwenden.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia