96

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

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

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

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

4 ответа4

127

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

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

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

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

23

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

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

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

12

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

1.

2.

3.

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

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

3

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

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

HKCU\Environment

а также

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .