1

Я сталкиваюсь со странной проблемой, когда не похоже, что мои переменные окружения загружаются должным образом при запуске Windows. Это было на самом деле боль, чтобы понять, что происходит, и я сделал это просто по счастливой случайности. Первоначально я замечал эту проблему всякий раз, когда я перезагружался или загружался и пытался запустить свой стандартный набор приложений. В частности, я бы попытался запустить Eclipse, и он не запустится и будет вести себя так, как будто у меня нет JDK.

При устранении неполадок я попытался отобразить переменные среды (в частности, Path) и получить следующее:

C:\Windows\System32> echo% PATH%

C:\Windows\system32\NV ;.;

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

C:\Windows\System32> echo% PATH%

C:\Program Files ... [Много заявлений] ...; C:\ Apache-Maven-3.0.4\ Bin

Исходя из того, что я понял, вход в переменные окружения заставляет их перезагружаться или обновляться. Я не знаком с тем, как переменные среды загружаются при запуске, но похоже, что этот процесс не работает. Это мой рабочий компьютер, и при запуске запускается множество фоновых сценариев, поэтому я подозреваю, что это может быть причиной.

Если у кого-то есть идеи о том, что здесь может происходить, я был бы признателен за обратную связь, но мне в первую очередь интересно, знает ли кто-нибудь, как я могу вручную принудительно обновить эти переменные при запуске? Небольшой скрипт, который я могу запустить при запуске или даже перед несколькими ключевыми приложениями, чтобы убедиться, что переменные среды загружены, был бы хорош. Спасибо заранее за любые данные!

2 ответа2

0

Кажется, я вспоминал, что несколько месяцев назад эта проблема была связана с программным обеспечением, которое извлекает информацию о лицензии из переменных среды. Мы устанавливали переменные USERS, но по какой-то причине они не оставались постоянными. В итоге я создал новые переменные SYSTEM (которые не меняются в зависимости от текущего пользователя), и с тех пор у нас не было никаких проблем.

Или вы можете создать очень простой командный файл и поместить его в папку «Автозагрузка».

// поцарапаем, переменные, установленные в командном окне, сохраняются только в этом экземпляре командного окна

VBscript на помощь!

Set wshShell = CreateObject( "WScript.Shell" )
Set wshSystemEnv = wshShell.Environment( "SYSTEM" )

' Display the current value
' comment out to remove dialog box
WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

wshSystemEnv( "MyVariable" ) = "MyNewValue" 
' WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

' Delete the environment variable
' uncomment to enable
'wshSystemEnv.Remove( "MyVariable" )

Set wshSystemEnv = Nothing
Set wshShell     = Nothing

сохранить в файл с расширением ned *.VBS

0

В некоторые наборы ресурсов Windows включена утилита командной строки, называемая setx, которая позволяет вносить постоянные изменения в переменные среды вместо временных. Его можно использовать в командном файле, чтобы установить для переменной среды PATH то, что вы хотите.

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