Istnieje wyraźny problem z rozszerzaniem zmiennych środowiskowych w zmiennej PATH, gdy zmienna rozwija się do ścieżki zawierającej spacje.
Stworzyliśmy własne zmienne na poziomie systemu, takie jak „OUR_ROOT = c: \ MyRoot”, a następnie wykorzystaliśmy je w ŚCIEŻCE systemu, np. „PATH =;% OUR_ROOT% \ bin;” i to jest poprawnie rozwijane do „PATH =; c: \ MyRoot \ bin;”. Jak dotąd nie ma problemu.
Ale w systemie Windows 7 (32-bitowym) sam zainstalowałem produkt i utworzyłem systemowe zmienne środowiskowe w następujący sposób:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
i dodał ją do zmiennej systemowej PATH:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
Ale wartości PATH pokazane w CMD zawierały „% STUDIO_BIN%;” a nie rozwinięta ścieżka. Wartość w Mój komputer> Właściwości> Zaawansowane> Różnice środowiskowe również pozostała nierozwinięta. Oznaczało to, że nie mogłem uruchamiać programów wymagających biblioteki DLL w tym katalogu.
Po prostu zmieniając STUDIO_BIN (przez Mój komputer> Właściwości> Zaawansowane ...> Zmienne środowiskowe) na nazwę bez osadzonych spacji:
STUDIO_BIN=C:\ProductName\bin
a następnie ponownie uruchamiając okno CMD, ŚCIEŻKA jest teraz:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Innym rozwiązaniem jest wystarczająca edycja zmiennej systemowej używanej w ŚCIEŻCE za pomocą okna dialogowego Mój komputer> Właściwości> Zaawansowane ...> Zmienne środowiskowe. Próbowałem dodać znak i usunąć go, aby dokonać „zmiany”, a następnie OK, uruchomiłem nowy monit CMD, a ŚCIEŻKA NIE została poprawnie rozwinięta. Następnie spróbowałem usunąć część ścieżki, tak było
STUDIO_BIN=C:\Program Files\Company Name
(pomijając „Nazwę produktu 10.4”) i lo, a oto następny monit CMD pokazał ŚCIEŻKĘ z STUDIO_BIN odpowiednio rozwiniętym!
O dziwo, gdybym wrócił i dodał „Nazwę produktu 10.4” do STUDIO_BIN (w tym wszystkie spacje, które pierwotnie tam były, zanim zacząłem z nim wycinać), a ŚCIEŻKA JEST W dalszym ciągu poprawnie rozwinięta.
Najwyraźniej przy wystarczającej zmianie zawartości zmienna PATH jest poddawana dodatkowemu przetwarzaniu w oknie dialogowym Zmienne środowiskowe, które umożliwia jej działanie. Przetwarzanie, które nie jest wykonywane, gdy zmienna została dodana przez instalator produktu (który prawdopodobnie właśnie zmodyfikował PATH bezpośrednio w rejestrze).
Jestem prawie pewien, że to był problem również z XP. Właśnie pojawiło się dla mnie w systemie Windows 7, gdy tworzyłem nową maszynę programistyczną. Najwyraźniej nie zostało to naprawione przez Microsoft.
Najwyraźniej nawet zmienne zdefiniowane przez MS, takie jak% ProgramFiles%, nie rozwijają się poprawnie w ŚCIEŻCE.
Ta strona zawiera możliwą odpowiedź, jeśli ustawiasz PATH za pomocą wiersza polecenia lub pliku wsadowego. (Całą komendę po SET umieść w cudzysłowie). Nie wiem, jakiego instalatora użyłem produktu, który zainstalowałem, aby ustawić zmienne środowiskowe, ale najwyraźniej obejrzał to, co jest potrzebne do prawidłowego rozszerzenia ścieżek spacjami.
Podsumowując, możesz:
zmień ścieżki (i przenieś wszystkie powiązane pliki) na ścieżki bez spacji lub
edytuj zmienne, które nie rozwijają się w oknie dialogowym Zmienne środowiskowe (zmieniając je na tyle, aby umożliwić ich prawidłowe przetwarzanie - nie jestem pewien, ile wystarczy).