Wie kann ich in einem DOS-Fenster den vollständigen DOS-Namen / Kurznamen des Verzeichnisses abrufen, in dem ich mich befinde?
Wenn ich mich beispielsweise im Verzeichnis C:\Program Files\Java\jdk1.6.0_22
befinde, möchte ich dessen Kurznamen anzeigen C:\PROGRA~1\Java\JDK16~1.0_2
.
Ich weiß, dass beim Ausführen dir /x
die Kurznamen der Dateien / Verzeichnisse im aktuellen Verzeichnis angezeigt werden, aber ich konnte keine Möglichkeit finden, den vollständigen Pfad des aktuellen Verzeichnisses im Kurznamenformat anzuzeigen. Ich muss mich durch den Pfad vom Stammverzeichnis arbeiten, Verzeichnis für Verzeichnis, das dir /x
in jedem ausgeführt wird.
Ich bin sicher, es gibt einen einfacheren Weg, dies zu tun?
windows
command-line
CodeClimber
quelle
quelle
Antworten:
Einfacher?
quelle
for /d %I in (*) do @echo %~sI
Jedes Pfadsegment ist kurz, großartig. Das Problem war nicht direkt mit den langen Namen oder Leerzeichen verbunden, obwohl es schmerzhaft ist, aber das Schlimmste ist, wenn internationale Zeichen vorhanden sind, die mein Skript einfach unter Verwendung dieser Verzeichnisliste als Eingabe abspritzen.%
Zeichen entkommen :for %%I in ("C:\folder with spaces") do echo %%~sI
Sie können auch Folgendes in ein CMD-Fenster eingeben:
Wo
<ParentDirectory>
durch den vollständigen Pfad des Verzeichnisses ersetzt wird, das das Element enthält, für das Sie den Namen wünschen.Die Ausgabe ist zwar nicht so einfach wie die Antwort von Timbo , listet jedoch alle Elemente im angegebenen Verzeichnis mit dem tatsächlichen Namen und (falls abweichend) dem Kurznamen auf.
Wenn Sie verwenden
for %I in (.) do echo %~sI
, können Sie den.
durch den vollständigen Pfad der Datei / des Ordners ersetzen , um den Kurznamen dieser Datei / dieses Ordners zu erhalten (andernfalls wird der Kurzname des aktuellen Ordners zurückgegeben).Getestet unter Windows 7 x64.
quelle
Erweitert in Windows-Batch-Skripten
%~s1
die Pfadparameter zu Kurznamen . Erstellen Sie diese Batch-Datei:Ich habe meine angerufen
shortNamePath.cmd
und es so genannt:Bearbeiten: Hier ist eine Version, die das aktuelle Verzeichnis verwendet, wenn kein Parameter angegeben wurde:
Ohne Parameter aufgerufen:
quelle
%0
ist der Pfadname des Batch-Skripts).Als Programmierer hat er dieses 10-minütige Winform-Projekt gemacht. Es war nützlich für mich. Wenn Sie diese App zu einem Kontextmenü für den Datei-Explorer machen, sparen Sie mehr Klicks.
Form1.cs:
Form1.Designer.cs:
quelle
Führen
cmd.exe
Sie Folgendes aus:Dann wird command.com angezeigt und zeigt nur kurze Pfade an.
Quelle
quelle
Kimbos Antwort ist perfekt für normale Dateien.
Für MsDos-Dateinamen auf HardLinks
Die mit erstellten Hardlinks
mklink /H <link> <target>
Hardlinks haben keinen kurzen MsDos-Dateinamen.Falls Sie
dir /X
und Sie feststellen, dass der Kurzname fehlt, sollten Sie Folgendes erwarten:Normale Datei
In diesem Fall
Ich habe was ich erwartet habe
Hardlink-Datei
In diesem Fall
Ich habe den normalen MsDos-Pfad, aber den normalen Dateinamen.
quelle
ähnlich dieser Antwort , verwendet jedoch eine Unterroutine
quelle
Eine direktere Antwort ist, den Fehler zu beheben.
% SPARK_HOME% \ bin \ spark-class2.cmd; Zeile 54
Broken: set RUNNER="%JAVA_HOME%\bin\java"
Windows Style: set "RUNNER=%JAVA_HOME%\bin\java"
Andernfalls erhält der RUNNER Anführungszeichen und der Befehl
"%RUNNER%" -Xmx128m ...
doppelte Anführungszeichen. Das Ergebnis ist, dass Programm und Datei als separate Parameter behandelt werden.quelle
Inspiriert von Dr. Scriptos Antwort
quelle
wenn über eine Batch-Datei verwenden:
Mit dem Befehl echo können Sie Folgendes überprüfen:
quelle
Wenn Sie diesen Link verwenden, wird jeder von Ihnen angegebene Pfad automatisch in ein beliebiges Format konvertiert: https://pathconverter-pp.azurewebsites.net
quelle