"Успадковувати" змінні шляху у Windows


1

У Windows 7 я додав дві змінні середовища користувача:

M2_HOME   %PROGRAMFILES%\Apache\apache-maven-3.0.2
M2        %M2_HOME%\bin

У моїй голові обидва повинні працювати, однак, тільки перший робить з якоїсь причини. Що я маю на увазі, що я в командному рядку можна набрати

cd %M2_HOME%

Що прекрасно працює, але

cd %M2%

Якого немає. Що тут відбувається?


Перезавантаження.
Synetech

Відповіді:


2

Здається, у Windows 7 є помилка з вкладеними змінними середовища (можливо, інші версії, я не впевнений), де, якщо ім'я змінної верхнього рівня доводиться перед назвою вкладеної змінної в алфавітному порядку, вона не буде розширена .

У вашому випадку змінна верхнього рівня M2 поставляється перед вкладеною змінною M2_HOME при сортуванні в алфавітному порядку. Якщо ви зміните M2 до чогось, що приходить після M2_HOME (наприклад, M3 ), ви побачите, що він працює за призначенням.


Тепер це дратує ... Вгадайте, що це також причина, чому вона не працює, щоб додати% M2% до шляху, а також. Чи можна вказати порядок цих змінних середовища?
Svish

Єдиний спосіб обійти проблему - зробити те, що я сказав, і перейменувати M2 на щось подібне M3 або навіть щось подібне M2_PATH буде працювати - до тих пір, поки це те, що приходить після M2_HOME при порівнянні в алфавітному порядку. Також можна редагувати M2_HOME і вручну ввести каталог програмних файлів замість використання %PROGRAMFILES%, оскільки помилка, здається, виникає лише тоді, коли у вас є вкладене більше двох рівнів.
Herohtar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.