Es gibt ein bestimmtes Problem beim Erweitern von Umgebungsvariablen in der PATH-Variablen, wenn die Variable auf einen Pfad erweitert wird, der Leerzeichen enthält.
Wir haben unsere eigenen Variablen auf Systemebene wie "OUR_ROOT = c: \ MyRoot" erstellt und sie dann im Systempfad wie "PATH =;% OUR_ROOT% \ bin;" verwendet. und das wird korrekt zu "PATH =; c: \ MyRoot \ bin;" erweitert. Bisher kein Problem.
Unter Windows 7 (32-Bit) ließ ich ein Produkt selbst installieren und Systemumgebungsvariablen wie diese erstellen:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
und es fügte es der System-PATH-Variablen hinzu:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
Die in CMD angezeigten PATH-Werte enthielten jedoch "% STUDIO_BIN%;" und nicht der erweiterte Pfad. Der Wert unter Arbeitsplatz> Eigenschaften> Erweitert> Umgebungsvariablen blieb ebenfalls unverändert. Dies bedeutete, dass ich keine Programme ausführen konnte, für die eine DLL in diesem Verzeichnis erforderlich war.
Ändern Sie einfach STUDIO_BIN (über Arbeitsplatz> Eigenschaften> Erweitert ...> Env Vars) in einen Namen ohne eingebettete Leerzeichen:
STUDIO_BIN=C:\ProductName\bin
Nach dem Neustart des CMD-Fensters lautet der Pfad nun:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Eine andere Lösung besteht darin, die im PATH verwendete Systemvariable im Dialogfeld Arbeitsplatz> Eigenschaften> Erweitert ...> Umgebungsvariablen ausreichend zu bearbeiten. Ich habe versucht, ein Zeichen hinzuzufügen und es zu entfernen, um eine 'Änderung' vorzunehmen, und dann habe ich OK ausgegeben, eine neue CMD-Eingabeaufforderung gestartet und PATH wurde NICHT korrekt erweitert. Ich habe dann versucht, einen Teil des Pfades so zu löschen , wie es war
STUDIO_BIN=C:\Program Files\Company Name
(Auslassen von "Product Name 10.4") und siehe da, die nächste CMD-Eingabeaufforderung zeigte PATH mit STUDIO_BIN richtig erweitert!
Seltsamerweise, wenn ich zurückkam und STUDIO_BIN den "Produktnamen 10.4" hinzufügte (einschließlich aller ursprünglich vorhandenen Leerzeichen, bevor ich anfing, mich damit zu beschäftigen) und PATH NOCH korrekt erweitert wurde.
Offensichtlich wird die PATH-Variable bei ausreichender Änderung ihres Inhalts im Dialogfeld Umgebungsvariablen einer zusätzlichen Verarbeitung unterzogen, die es ihr ermöglicht, zu arbeiten. Verarbeitung, die nicht ausgeführt wurde, als die Variable vom Installationsprogramm des Produkts hinzugefügt wurde (das wahrscheinlich nur PATH direkt in der Registrierung geändert hat).
Ich bin mir fast sicher, dass dies auch ein Problem mit XP war. In Windows 7 tauchte es gerade wieder auf, als ich eine neue Entwicklungsmaschine zusammenstellte. Anscheinend wurde es nicht von Microsoft behoben.
Anscheinend werden selbst MS-definierte Variablen wie% ProgramFiles% im PATH nicht korrekt erweitert.
Diese Seite bietet eine mögliche Antwort, wenn Sie PATH über die Befehlszeile oder die Batch-Datei festlegen. (Setzen Sie den gesamten Befehl nach SET in Anführungszeichen.) Ich weiß nicht, mit welchem Installationsprogramm das von mir installierte Produkt die Umgebungsvariablen festgelegt hat, aber es ging offenbar um die erforderliche Verarbeitung, um die Pfade ordnungsgemäß mit Leerzeichen zu erweitern.
Zusammenfassend können Sie also entweder:
Ändern Sie die Pfade (und verschieben Sie alle zugehörigen Dateien) in Pfade ohne Leerzeichen oder
Bearbeiten Sie die Variablen, die nicht erweitert werden können, im Dialogfeld "Umgebungsvariablen" (ändern Sie sie so weit, dass sie ordnungsgemäß verarbeitet werden - ich bin mir nicht sicher, wie viel ausreicht).