Путь и переменные окружения в Windows 7 повреждены


97

Я понятия не имею, но в последнее время у меня возникла эта проблема. После запуска моей рабочей станции вдруг что-то разрушает PATH, и многие вещи перестают работать. Первоначально на моем пути были указаны МНОГИЕ каталоги (я использую Windows 7 в качестве блока разработки), и через некоторое время в моем пути осталось только 3-4 каталога.

Я даже не могу открыть диалоговое окно «Свойства системы», где я могу видеть переменные среды (потому что он использует переменные оболочки, чтобы запустить его, и он не работает). Короче я перезагружаюсь каждый раз.

Есть идеи, что может вызвать эту проблему? Я не запускал ничего нового / необычного в последнее время. Только VmWare (но я использовал его в прошлом, и тогда у меня не было этой проблемы).

Я только что проверил, даже %WINDIR%не определился. WTF ?!


2
У меня недавно была такая же проблема на моем 64-битном компьютере Vista. Без явной причины, если я открою новую командную строку, тогда в переменной пути будет указана часть пути, определенного в «Пользовательских переменных». Часть пути «Системные переменные» отсутствует. Некоторые, но не все системные переменные не определены. Реестр выглядит нормально, и все выглядит хорошо в диалоговом окне «Свойства системы» (с помощью «c: \ windows \ system32 \ systempropertiesadvanced.exe»). После перезагрузки система функционирует нормально. Проблема повторяется каждые несколько дней. Полная проверка на вирусы ничего не нашла.
Ли

У меня такая же проблема. Я нашел несколько разных вещей, которые вызвали его (запуск определенных программ, запуск инсталляторов и т. Д.), Но без причины, которые вызвали бы его (они отлично работают на других машинах или в виртуальной машине.) В конце концов у меня возникли другие проблемы, которые усугубляли необходимость переустановки который исправил все.
Джим Маккит

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

Ответы:


127

Из моего блога

В итоге, если ваша переменная окружения PATH содержит более 2048 символов, она (и WINDIR) перестают быть видимыми во многих контекстах.

Я исправил это, вручную запустив c: \ windows \ system32 \ systempropertiesadvanced.exe и удалив одну запись из моего PATH, чтобы поставить меня под 2048 символов. Новые окна cmd работают просто отлично.

Обновление: этот похожий вопрос утверждает, что 2047 - максимум, и развивает правила расширения


2
Я просто исправил проблему, перезапустив компьютер ... Это действительно глупое ограничение Windows!
Эдвин Ип

3
Просто столкнулся с этой проблемой. Ну и шутка. Спасибо
SwimBikeRun

3
Как уже упоминалось, после исправления вашего PATH просто перезапустите explorer.exe в диспетчере задач, если вы не хотите перезагружаться. Пожалуйста, убедитесь, что вы НЕ запускаете диспетчер задач, щелкнув правой кнопкой мыши на панели задач! Это приведет к инициализации диспетчера задач с использованием пути (и, следовательно, вашего нового процесса explorer.exe). Запустите его, выполнив Ctrl + Shift +
Escape

1
Спасибо тебе за это. Я боролся с этим в течение последнего месяца или около того, когда продукт Sony увеличил мой путь примерно на 200 символов.
Майкл Дорган

1
Что я сделал в дополнение к тому, что предложил Raven: заменить общие базовые каталоги, как c:\program files (86)в переменной path, другими переменными, например, PRGX86указав на каталог программных файлов. Таким образом, вы можете сохранить некоторые дополнительные символы.
ОВМ

23

Ограничение на 2048 символов реально. Я разбил путь на две отдельные переменные и включил вторую переменную в переменную PATH:

PATH=C:\;%PATHEXTENDED%
PATHEXTENDED=E:\

Например, мне не нужно было удалять каталоги PATH, но я получил переменную PATH длиной до 2048 символов.


2
хорошо, это довольно гениально
kenwarner

1
Очень умно, но приложения, которые динамически добавляют записи PATH, вероятно, будут работать по полностью расширенному пути и все еще будут сходить с ума. Но, по крайней мере, боль будет ограничена этим процессом.
Ворон

Спасибо за эту замечательную идею, но, к сожалению, она не работала под Win7: переменная "extpath" - или, в вашем случае, "pathextended" - не была проанализирована .....
unknown6656

2
Это решение не работало для меня в Win 7. Содержимое 2 переменных было сцеплено, но любые символы после 2048-го (?) Были усечены из полученной объединенной переменной PATH. Поэтому мне пришлось удалить записи из PATH в конце, в соответствии с @Raven, чтобы получить мои значки и %windir%т. Д., Чтобы вернуться.
snark

12

Обходное решение для любого, кто пытается решить эту проблему, из-за чрезмерной pathили по любой другой причине: просто перезапустите Explorer. Новая оболочка подхватывает новую среду. Это исправляет повреждение на время, без необходимости перезагрузки, даже если вы еще не смогли определить и навсегда устранить основную причину.

1.

введите описание изображения здесь

2.

введите описание изображения здесь

3.

введите описание изображения здесь

РЕДАКТИРОВАТЬ: обновление для более новых версий Windows.

Диспетчер задач теперь делает это за один шаг:

введите описание изображения здесь


Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его постом - вы всегда можете комментировать свои собственные посты, и, когда у вас будет достаточно репутации, вы сможете комментировать любые посты .
Майкл К

С уважением я не согласен. Вопрос заключается в том , Windows 7's PATH and environment variables are corrupted. Мой ответ предоставляет способ устранить эту коррупцию. Это актуальный ответ как сам по себе, так и в сочетании с другими исправлениями, после которых в противном случае потребуется перезагрузка.
Ред Править

Я бы предложил отредактировать ответ Воронов и добавить к нему свою часть. Большинство людей будут читать только принятый ответ, и если я правильно понимаю, ваш ответ в основном является дополнением к этому.
Майкл К

Ах я вижу. Нет, это относится к любому пробному решению. Я отредактировал свой ответ, чтобы сделать это более понятным.
Ред Править

1
это было, вероятно, более ценным комментарием, чем ответом. Чтобы вместо перезапуска он завершил задачу explorer.exe и перезапустил explorer.exe. Ваш ответ решает часть его проблемы - эту часть «Я даже не могу открыть диалоговое окно« Свойства системы », где я вижу переменные среды (потому что он использует переменные оболочки для запуска и не работает). Короче, я перезагружаю каждый время." Но обратите внимание, что, поскольку после перезапуска у него возникает проблема с маршрутом, это не решит его проблему больше, чем при перезапуске.
Барлоп

3

Вы должны получить программу для мониторинга ключей реестра

пользовательские переменные

HKCU\Environment

а также

машинные переменные

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Вы можете поймать момент, когда они будут уничтожены, и сузить его.

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

попробуйте безопасный режим тоже. если это связано с процессом, и проверьте просмотрщик событий.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.