Існує певна проблема з розширенням змінних середовища в змінній PATH, коли змінна розширюється на шлях, який містить пробіли.
Ми створили власні змінні на системному рівні, такі як "OUR_ROOT = c: \ MyRoot", а потім використовували її в системі PATH типу "PATH =;% OUR_ROOT% \ bin;" і це правильно розширюється до "PATH =; c: \ MyRoot \ bin;". Поки ніяких проблем.
Але в Windows 7 (32-розрядний) мені довелося встановити продукт і створити такі змінні системного середовища:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
і він додав його до системної змінної PATH:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
Але значення PATH, показані в CMD, містили "% STUDIO_BIN%;" а не розширений шлях. Значення в розділі "Мій комп'ютер"> "Властивості"> "Додатково"> "Env.Vars" також залишилося нерозширеним. Це означало, що я не міг запускати програми, для яких потрібна DLL у цьому каталозі.
Просто змінивши STUDIO_BIN (через Мій комп'ютер> Властивості> Додаткові ...> Env Vars) на ім'я без вбудованих пробілів:
STUDIO_BIN=C:\ProductName\bin
а потім перезапустіть вікно CMD, PATH зараз:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
Ще одне рішення - достатньо відредагувати системну змінну, яку ви використовуєте в PATH, використовуючи діалогове вікно Мій комп'ютер> Властивості> Додаткові ...> Змінні середовища. Я спробував додати символ і видалити його, щоб внести «зміни», а потім OK'd out, запустив нову підказку CMD, і PATH НЕ було правильно розширено. Потім я спробував видалити частину шляху, щоб це було
STUDIO_BIN=C:\Program Files\Company Name
(опускаючи "Ім'я продукту 10.4") і ось, ось ось, наступний рядок CMD показав PATH зі STUDIO_BIN належним чином розширеним!
Як не дивно, якщо я повернувся назад і додав "Ім'я продукту 10.4" до STUDIO_BIN (включаючи всі пробіли, які були там спочатку, перш ніж я почав спілкуватися з ним), і PATH було ВІДПОВІДНО правильно розширено.
Очевидно при достатній зміні його змісту змінна PATH проходить деяку додаткову обробку в діалоговому вікні "Змінні середовища", що дозволяє їй працювати. Обробка цього не робиться, коли інсталятор продукту додав змінну (яка, ймовірно, просто змінила PATH безпосередньо в реєстрі).
Я майже впевнений, що це була проблема і з XP. Він просто з'явився для мене в Windows 7, коли я збирав нову розроблювальну машину. Мабуть, це Microsoft не виправила.
Мабуть, навіть визначені MS змінні, такі як% ProgramFiles%, не розширяться правильно в PATH.
Ця сторінка дає можливу відповідь, якщо ви встановлюєте PATH через командний рядок або пакетний файл. (Укладіть всю команду після SET у лапки.) Я не знаю, який інсталятор продукту, який я встановив, використовувався для встановлення змінних середовища, але він, очевидно, обійшов будь-яку обробку, необхідну для правильного розширення шляхів з пробілами.
Отже, підводячи підсумок, ви можете:
змінити контури (і перемістити всі пов’язані файли) на шляхи без пробілів, або
відредагуйте змінні, які не вдається розширити в діалоговому вікні "Змінні середовища" (змінивши їх досить, щоб вони могли правильно обробити - я не впевнений, наскільки це достатньо).