Kurzname für Eigene Dokumente in Windows 7

909
Simon

Ich habe ein Programm, das auf einen C ++ - Compiler zugreifen muss, den ich im Ordner Eigene Dateien installiert habe - beispielsweise d: \ Eigene Dateien

Das Programm kann kein Leerzeichen im Pfad behandeln, und der Pfad ist bereits in doppelte Anführungszeichen gesetzt. Ich habe versucht, den kurzen Namen mit Hilfe von dir /xund herauszufinden for %I in (.) do echo %~sI. Dies gibt nur den vollständigen Namen von My Documents zurück. Ich habe es auch versucht, %userprofile%\documentsaber das Programm erkennt das nicht.

Warum kann ich mit diesem Befehl nicht den Kurznamen dieses Ordners erhalten? Gibt es eine andere Möglichkeit, den Kurznamen oder eine mögliche Kürzung zu erhalten?

2

2 Antworten auf die Frage

3
Appleoddity

dir /xzeigt den kurzen Dateinamen für Dateien und Ordner an, sofern vorhanden. Eine wird existieren, wenn der lange Name das 8,3-Zeichen-Format überschreitet.

Hier ein Beispiel für die Verwendung dir /xin meinem Benutzerprofilordner:

01/02/2018 05:35 PM <DIR> . 01/02/2018 05:35 PM <DIR> .. 10/16/2017 09:41 AM <DIR> ASDM~1 .asdm 11/01/2017 01:01 PM <DIR> GIMP-2~1.8 .gimp-2.8 11/20/2017 05:26 PM <DIR> NETWOR~1 .networkassistant 12/15/2016 09:54 AM <DIR> THUMBN~1 .thumbnails 11/16/2017 09:48 PM <DIR> Contacts 07/17/2017 02:23 PM <DIR> DOCUME~1 Documents 01/03/2018 01:07 PM <DIR> DOWNLO~1 Downloads 03/14/2017 02:43 PM <DIR> GNS3 12/19/2017 01:10 PM <DIR> GOOGLE~1 Google Drive 11/16/2017 09:48 PM <DIR> Links 06/22/2017 07:20 AM <DIR> OneDrive 

Beachten Sie, dass der Kurzname neben dem Langnamen angezeigt wird.

Beachten Sie auch, dass der Standard zum Verkürzen des Namens darin besteht, Leerzeichen zu entfernen, den Namen auf 6 Zeichen zu verkürzen und eine ~ 1 hinzuzufügen, alle Buchstaben groß zu setzen und die ersten 3 Zeichen der Dateierweiterung hinzuzufügen. Wenn es einen Konflikt gibt, wird stattdessen eine ~ 2 hinzugefügt und so weiter.

Wenn wir davon ausgehen, dass Ihr Dokumentenordner unter gespeichert ist D:\My Documentsund keine anderen in Konflikt stehenden Namen vorhanden sind, wird der Kurzname angezeigt D:\MYDOCU~1.

Sie können% userprofile% wahrscheinlich nicht aus demselben Grund verwenden wie lange Dateinamen. Das Programm versteht einfach keine Umgebungsvariablen. Und es verwendet auch nicht die Kurznamenversion.

Er sagte, dass er es mit "dir / x" bereits nicht gefunden habe. Ich glaube, er sucht an der falschen Stelle. HackSlash vor 6 Jahren 0
Das ist blöd. Wenn die akzeptierte Antwort funktioniert, funktioniert `dir / x`. Das OP hat es offensichtlich nicht richtig gemacht. Twisty Impersonator vor 6 Jahren 1
Weil er wissen müsste, wo er "dir / x" laufen muss. Ich habe ihm von wo erzählt. Wenn er einen langen Benutzernamen hätte, müsste er "dir / x" aus dem Benutzerverzeichnis und dann von CD unter diesem 8.3-Benutzernamen ausführen und es erneut ausführen. In diesem Fall wäre es schneller, es einfach in Freihand zu tippen, da ich mit der in meiner Antwort beschriebenen Methode den richtigen Namen für 8.3 erkennen kann. HackSlash vor 6 Jahren 0
Beide gute Antworten. Die Überprüfung der Registrierung war das wichtige Detail, das HackSlash zur Verfügung stellte. Simon vor 6 Jahren 0
0
HackSlash

Möglicherweise suchen Sie nach einem Link oder einer Verknüpfung.

Der Standardspeicherort für "Eigene Dateien" lautet:

C:\Users\%USERNAME%\Documents 

Wenn also Ihr% USERNAME% "meinname" ist, würden Sie darauf verweisen:

C:\Users\myname\Documents 

Es klingt, als würden Sie ein altes command.com-Programm verwenden, das DOS 8.3-Dateinamen benötigt. In diesem Fall würden Sie die ersten sechs Zeichen verwenden und "~ 1" für das erste Element hinzufügen. Wenn Sie zwei Elemente mit den gleichen ersten sechs Zeichen hätten, endet das nächste mit "~ 2" und so weiter. Um sicher zu sein, können Sie "dir / x" ausführen, um zu sehen, welche Kurznamen den einzelnen Ordnern zugewiesen wurden.

In meinem letzten Beispiel werde ich zeigen, wie es für einen langen Benutzernamen in diesem Format aussehen würde. Der beispielhafte Benutzername lautet "longusername".

C:\Users\LONGUS~1\DOCUME~1 

Folgen Sie diesem Muster mit Ihrem eigenen Benutzernamen.

Wenn sich "Meine Dokumente" nicht am Standardspeicherort befindet oder Sie den Speicherort dynamisch suchen möchten, überprüfen Sie den folgenden Registrierungsspeicherort:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 
`dir / x` ist zuverlässiger. Angenommen, man erstellt drei Ordner, "LongFolder1", "LongFolder2" und "LongFolder3", löscht dann den ersten und erstellt "LongFolder4". Warum raten Sie, welchen Namen Sie verwenden sollen, wenn es 'dir / x' gibt? Ansonsten gute Antwort, da in diesem einfachen Fall diese Antwort dem OP geholfen hat. Twisty Impersonator vor 6 Jahren 0
Ok, ich habe eine Notiz hinzugefügt, dass Sie "dir / x" verwenden können, um den Namen zu finden, anstatt zu raten. Ich denke immer und hatte noch nie ein Problem. HackSlash vor 6 Jahren 0