Мені потрібно було додати новий запис до моєї змінної PATH. Для мене це звичайна діяльність в моїй роботі, але я нещодавно почав використовувати Windows 8. Я припускав, що процес буде подібний до Windows 7, Vista, XP ...
Ось моя послідовність подій:
- Відкрийте Властивості системи (Пуск-> [тип "Панель управління"] -> Панель управління \ Система та безпека \ Система -> Розширені налаштування системи -> Змінні середовища)
- Додайте новий шлях до початку моєї змінної USER PATH (C: \ dev \ Java \ apache-ant-1.8.4 \ bin;)
- Відкрив командний рядок (Start -> [type "командний рядок" enter] -> [type "path" enter])
Мій новий запис шляху недоступний (див. Додане зображення та відео). Я дублював такий самий процес на машині Windows 7, і він працював.
EDIT
Відео змінних середовища Windows і командного рядка
EDIT
Це, безумовно, не поведінка 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?
EDIT 2014-04-28
Через це та кілька інших проблем ми більше не використовуємо Windows 8 на робочому столі. У нас немає середовища, щоб продовжувати тестувати та експериментувати з цією проблемою. На цю проблему досі немає відповіді чи вирішення цієї проблеми. Відповіді нижче не вирішили нашу проблему.
cmd
коли запускався новий екземпляр. Звичайно, вже запущені cmd
не отримали оновленого середовища.