Коли я оновлюю свій PATH, використовуючи або вбудований діалог змінних середовищ, або щось на зразок редактора шляхів , а потім відкриваю командний рядок, зміни в моєму PATH не реєструватимуться в консолі, залежно від того, де був командний рядок. розпочато з.
Наприклад, якщо я редагую свій PATH, а потім запускаю cmd.exe з меню «Пуск» або ярлик на робочому столі, то мій PATH виглядає чудово: він був успішно оновлений; однак, якщо я запускаю cmd.exe з ярлика в будь-якому іншому місці, крім меню «Пуск» або «Робочий стіл», новий PATH не читається, і я отримую замість нього старий шлях. Це дуже дивно.
Я спробував запустити командний рядок із ярлика на робочому столі, і він працює чудово; Потім я скопіюю цю саму ярлику в підпапку на робочому столі, і я отримаю проблему, що не оновляється PATH.
Я усвідомлюю, що це досить важко пояснити, тому я створив скріншот, щоб показати це питання в дії .
Ось скріншот ярлика командного рядка, як видно на екрані:
Це на Windows Vista Home Premium SP2.
explorer
процес виявить зміни середовища в Реєстрі (належить діалогове вікноrundll32
) та оновить власне середовище автоматично. (Принаймні, у XP це робиться.) Ось чому зміни видно, коли починаєтьсяcmd
із ярлика.