Windows 10 Удаленные системные переменные окружения продолжают возвращаться

279
David C.

Я использую GNU Emacs в Windows много лет, и чтобы заставить его работать, мне всегда приходилось определять несколько переменных среды. Все это время я определял их как системные переменные:

EMACS_DIR, EMACSDATA, EMACSDOC, EMACSLOADPATH, EMACSLOCKDIRИ EMACSPATH.

Я недавно обновил свой Emacs с порта NTEmacs 24.3 до официального порта GNU 26.1, и я обнаружил, что значения, которые я использовал для них, были неправильными. Кроме того, текущая версия может автоматически определять все, кроме переменной EMACSPATH.

Поэтому я зашел в панель управления переменными среды, изменил EMACSPATH, чтобы он указывал на местоположение новой установки, и удалил остальные. Emacs теперь отлично работает.

Но я обнаружил, что после выхода из системы / входа все удаленные переменные возвращаются со старыми значениями. Точнее, их нет в панели управления, но если я открою командную строку и наберу set, они будут там, и Emacs не сможет работать. (Другие переменные окружения, которые я удалил, также возвращаются, но они не мешают ни одному из моих приложений, поэтому мне все равно).

Если я изменяю, добавляю или удаляю любую переменную системной среды с помощью панели управления, среда сбрасывается, чтобы соответствовать ей, и Emacs снова работает до следующего выхода из системы или перезагрузки.

Ясно, что эти переменные среды где-то кэшируются, но я понятия не имею, где искать, чтобы полностью удалить их.

Я искал реестр с помощью regedit и не смог найти никаких следов этих старых переменных. Есть ли еще место, где я должен искать? Это явно ошибка Windows, но я не хочу мириться с этим, пока Microsoft исправит ошибку.

Конечно, я могу получить значения, которые вычисляет Emacs, и заново создать системные переменные среды с этими значениями, но я бы предпочел этого избегать, если нет другой доступной опции.

2
В моей установке Win10v1803 с установленной подсистемой Windows для Linux Ubuntu 1804 без emacs для Windows я не вижу этих системных переменных. Я подозреваю, что было запланированное задание или другой скрипт, который запускается при входе в систему (посмотрите в планировщике заданий, а также посмотрите в диспетчере задач-> Запуск и msconfig, чтобы увидеть, что запускается при входе в систему и запуске). Могут быть и другие способы автоматической установки переменных. См. Https://superuser.com/questions/15596/automatics-run-a-script-when-i-log-on-to-windows. Christopher Hostage 5 лет назад 0
Какое отношение этот вопрос имеет к Emacs? Drew 5 лет назад 0
Существует два параллельных набора переменных среды: System и User. Вы проверяли оба? harrymc 5 лет назад 0
Это не проблема Emacs. Emacs - причина, по которой я обнаружил проблему. Это происходит с любыми переменными среды, которые вы, возможно, установили в прошлом, а затем удалили. Что касается системы против пользователя, да, я проверил оба - я только создал их в системе, и я только удалил их из системы. David C. 5 лет назад 0
Они должны быть воссозданы какой-то программой, которую вы установили. Переменные среды сами по себе не появляются. harrymc 5 лет назад 0

0 ответов на вопрос