Мне нужно было добавить новую запись в мою переменную PATH. Это обычное занятие для меня в моей работе, но я недавно начал использовать Windows 8. Я предполагал, что процесс будет похож на Windows 7, Vista, XP ...
Вот моя последовательность событий:
- Откройте Свойства системы (Пуск-> [тип «Панель управления»] -> Панель управления \ Система и безопасность \ Система -> Расширенные настройки системы -> Переменные среды)
- Добавить новый путь в начало моей переменной USER PATH (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;)
- Открыл командную строку (Пуск -> [введите "командная строка" введите] -> [введите "путь" введите]
Мой новый путь не доступен (см. Прикрепленное изображение и видео). Я дублировал тот же процесс на компьютере с Windows 7, и он работал.
РЕДАКТИРОВАТЬ
Переменные среды Windows 8 и видео командной строки
РЕДАКТИРОВАТЬ
Это определенно не поведение Windows 7. Посмотрите это видео, чтобы увидеть поведение, которое я ожидаю работать в Windows 7. http://youtu.be/95JXY5X0fII
РЕДАКТИРОВАТЬ 31.05.2013
Итак, после большого разочарования, я написал небольшое приложение на C # для тестирования WM_SETTINGCHANGE
события. Этот код получает событие как в Windows 7, так и в Windows 8. Однако в Windows 8 в моей системе я не получаю правильный путь; но я делаю в Windows 7. Это не может быть воспроизведено в других системах Windows 8.
Вот код C #.
using System;
using Microsoft.Win32;
public sealed class App
{
static void Main()
{
SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(OnUserPreferenceChanging);
Console.WriteLine("Waiting for system events.");
Console.WriteLine("Press <Enter> to exit.");
Console.ReadLine();
}
static void OnUserPreferenceChanging(object sender, UserPreferenceChangingEventArgs e)
{
Console.WriteLine("The user preference is changing. Category={0}", e.Category);
Console.WriteLine("path={0}", System.Environment.GetEnvironmentVariable("PATH"));
}
}
OnUserPreferenceChanging
эквивалентно WM_SETTINGCHANGE
Программа на C #, работающая в Windows 7 (вы можете увидеть, как проходит событие, и он выбирает правильный путь).
Программа на C #, работающая в Windows 8 (вы можете видеть, как проходит событие, но неверный путь).
Есть что-то в моей среде, что ускоряет эту проблему. Однако это ошибка Windows 8?
РЕДАКТИРОВАТЬ 2014-04-28
В связи с этим и рядом других проблем мы больше не используем Windows 8 на рабочем столе. У нас нет среды для продолжения тестирования и экспериментов с этой проблемой. Для нас до сих пор нет ответа или решения этой проблемы. Ответы ниже не решили нашу проблему.
cmd
при запуске нового экземпляра. Конечно, уже запущенный cmd
не получил обновленную среду.