Es gibt ein eindeutiges Problem beim Erweitern von Umgebungsvariablen innerhalb der PATH-Variablen, wenn die Variable zu einem Pfad erweitert wird, der Leerzeichen enthält.
Wir haben unsere eigenen Systemebenenvariablen wie "OUR_ROOT = c: \ MyRoot" erstellt und dann im System PATH wie "PATH =;% OUR_ROOT% \ bin;" und das wird korrekt zu "PATH =; c: \ MyRoot \ bin;" erweitert. Bisher kein Problem.
Aber unter Windows 7 (32-Bit) habe ich ein Produkt selbst installieren lassen und Systemumgebungsvariablen wie folgt erstellen:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
und fügte es der Systemvariable PATH 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, die eine DLL in diesem Verzeichnis benötigten.
Ändern Sie einfach STUDIO_BIN (über Arbeitsplatz> Eigenschaften> Erweitert ...> Env Vars) in einen Namen ohne eingebettete Leerzeichen:
STUDIO_BIN=C:\ProductName\bin
und dann das CMD-Fenster neu starten, ist der PFAD jetzt:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Eine andere Lösung besteht darin, die Systemvariable, die Sie in PATH verwenden, im Dialogfeld Arbeitsplatz unter Eigenschaften> Erweitert ...> Umgebungsvariablen ausreichend zu bearbeiten. Ich habe versucht, ein Zeichen hinzuzufügen und es zu entfernen, um eine 'Änderung' vorzunehmen. Danach wurde OK ausgegeben, eine neue CMD-Eingabeaufforderung gestartet und PATH wurde NICHT korrekt erweitert. Ich habe dann versucht, einen Teil des Pfads zu löschen
STUDIO_BIN=C:\Program Files\Company Name
(weglassen von "Product Name 10.4") und siehe da, die nächste CMD-Eingabeaufforderung zeigte PATH mit STUDIO_BIN richtig erweitert!
Seltsamerweise, wenn ich wieder hineinging und "Product Name 10.4" zu STUDIO_BIN hinzufügte (einschließlich aller Leerzeichen, die vor dem Mucken vorhanden waren) und PATH noch STANDARD richtig erweitert wurde.
Offensichtlich wird die PATH-Variable mit genügend Änderungen am Inhalt im Dialogfeld "Umgebungsvariablen" einer zusätzlichen Verarbeitung unterzogen, damit sie funktionieren kann. Die Verarbeitung wird nicht durchgeführt, wenn die Variable vom Installationsprogramm des Produkts hinzugefügt wurde (was wahrscheinlich nur PATH direkt in der Registrierung geändert hat).
Ich bin fast sicher, das war auch ein Problem mit XP. In Windows 7 ist es gerade wieder aufgetaucht, als ich eine neue Entwicklungsmaschine zusammengestellt habe. Anscheinend wurde es nicht von Microsoft behoben.
Anscheinend werden selbst von MS definierte Variablen wie% ProgramFiles% nicht korrekt im PATH erweitert.
Diese Seite bietet eine mögliche Antwort, wenn Sie PATH über die Befehlszeile oder die Batchdatei einstellen. (Schließen Sie den gesamten Befehl hinter SET in Anführungszeichen ein.) Ich weiß nicht, mit welchem Installationsprogramm das von mir installierte Produkt die Umgebungsvariablen festlegte, aber es ging offensichtlich um die Verarbeitung, die erforderlich ist, um die Pfade ordnungsgemäß mit Leerzeichen zu erweitern.
Zusammenfassend können Sie also:
Ändern Sie die Pfade (und verschieben Sie alle zugehörigen Dateien) in Pfade ohne Leerzeichen oder
Bearbeiten Sie die Variablen, die nicht im Dialogfeld "Umgebungsvariablen" erweitert werden können (ändern Sie sie so, dass sie korrekt verarbeitet werden können. Ich bin nicht sicher, wie viel ausreicht).