Umgebungsvariablen für integrierte Windows-Bibliotheken?

3

Definiert Windows 7 Umgebungsvariablen für vorhandene Bibliotheken? Ich bin neugierig, weil ich diese häufig verwende, wenn ich einen Pfad in Dialogfeldern zum Öffnen / Speichern oder über die RunEingabeaufforderung eingebe. Um beispielsweise zum Firefox-Einstellungsverzeichnis des aktuellen Benutzers zu gelangen, gehen Sie wie folgt vor run:

%APPDATA%\Mozilla\Firefox

Es ist eine praktische Abkürzung, und ich hatte gehofft, für Bibliothekspfade etwas Ähnliches zu finden. Zum Beispiel:

%LIBRARIES%\Music\
%MUSIC%\

Ich verstehe, dass Bibliotheken einen oder mehrere Ordner der obersten Ebene zusammenfassen, sodass es zu Unklarheiten kommen kann. Microsoft verfügt über eine Liste von Umgebungsvariablen, auf die die meisten jedoch nicht über die Windows-Benutzeroberfläche zugegriffen werden kann. Diese Frage verweist auch auf eine nette Liste, enthält jedoch nicht den DocumentsOrdner, den MusicOrdner usw. eines Benutzers .

zourtney
quelle

Antworten:

6

Windows-Bibliotheken sind eigentlich nur xmlDateien, die definieren, wie eine Sammlung von Ordnern angezeigt wird. Sie werden mit einer speziellen Shell-Erweiterung angezeigt, die in Windows integriert ist. Da es sich nicht um echte Ordner handelt, kann auf Dateien und Unterordner nicht direkt über einen Pfad zugegriffen werden.

Bei geöffnetem Explorer-Fenster können Sie Folgendes in die Adressleiste eingeben:

libraries\music

Dies scheint in der Box zum Öffnen / Speichern von Dialogen nicht zu funktionieren File Name. Es funktioniert auch nicht mit dem runBefehl.

Was Sie dagegen tun können:

Windows Vista führte das Konzept " Bekannte Ordner " ein. Es ersetzt die in XP verwendete ältere CSIDL- Methode ( Constant Special Item ID List ). Es gibt einen ausgezeichneten Beitrag im Windows-Blog. Es erläutert diese Änderung und gibt einen Überblick über die *.library-msDateistruktur.

Bekannte Ordner haben GUIDs. Wenn Sie über die Befehlszeile darauf zugreifen möchten, stellen Sie Ihrem URI das Präfix voran knownfolder:. Es sind Dutzende definiert . Um beispielsweise auf den MusicOrdner des aktuellen Benutzers zuzugreifen , geben Sie runden folgenden Befehl ein:

knownfolder:{4BD8D571-6D19-48D3-BE97-422220080E43}

Dadurch gelangen Sie zum vordefinierten Standard -Musikordner. Wenn Sie also den Ordner der Bibliothek geändert haben, funktioniert dies leider nicht.

Eine Bibliothek der Standardordner kann zugegriffen programmgesteuert mithilfe IShellLibrary Schnittstelle, aber das ist aus dem Rahmen meiner ursprünglichen Frage. Es scheint, dass der beste Ansatz ist, entweder:

  1. Ordnen Sie Umgebungsvariablen manuell ihrem bekannten Pfad zu
  2. Oder ordnen Sie Umgebungsvariablen mithilfe ihrer GUID manuell zu. Der Vorteil hierbei ist, dass Sie es zu einer Systemvariablen machen und es für alle Benutzer arbeiten lassen.
zourtney
quelle
4

Wenn Sie %music%auf Ihren Musikordner zeigen möchten , fügen Sie Ihrem System einfach eine neue Umgebungsvariable hinzu.

Wenn Sie %Libraries%auf Ihre Bibliotheken verweisen möchten, c:\erstellen Sie beispielsweise eine Verknüpfung zu und anschließend eine neue Umgebungsvariable, die auf Ihre c:\librariesVerknüpfung verweist . (Das direkte Eingeben von Unterordnern ist jedoch nicht möglich. Sie können jedoch eine neue Variable für die in Bibliotheken enthaltenen Variablen erstellen.)

Sie können sie dann beide mit %music%oder aufrufen%Libraries%

andySF
quelle
1
In der Tat ist dies wahrscheinlich die beste Lösung. Ich ging voran und definierte %MUSIC%, was mein Interesse geweckt hat. Trotzdem finde ich den Mangel an Variablen merkwürdig. Es scheint nicht einmal zu sein%DOCUMENTS%
zourtney