Переменные среды обновления Windows без перезагрузки

Обновлено: 22.11.2024

Из-за того, как Windows применяет переменные среды, вам, скорее всего, потребуется перезапустить приложения, чтобы они приняли изменения, включая explorer.exe . Перезагрузка компьютера рекомендуется (но не обязательна) и гарантирует запуск всех приложений с изменением PATH.

Как сбросить переменные среды Windows?

Лучший и полностью проверенный способ сброса переменных среды для любой версии Windows — выполнить восстановление системы. Нажмите кнопку Windows> введите и откройте «Восстановление системы»> нажмите «Далее»> выберите точку восстановления> нажмите «Готово».

Как установить переменные среды без перезагрузки?

  1. В командной строке введите: runas /user:[email protected] cmd.
  2. Откроется новая командная строка, затем введите: taskkill /f /im explorer.exe.
  3. Затем введите: explorer.exe.

Как найти переменные среды в Windows Server 2003?

В Панели управления откройте системный апплет. Выберите вкладку «Дополнительно». Нажмите кнопку "Переменные среды".

Как исправить переменные среды?

  1. На рабочем столе щелкните правой кнопкой мыши значок "Компьютер".
  2. Выберите «Свойства» в контекстном меню.
  3. Нажмите ссылку Дополнительные параметры системы.
  4. Нажмите "Переменные среды".
  5. В окне "Редактировать системную переменную" (или "Новая системная переменная") укажите значение переменной среды PATH.

Как обновить системную переменную?

процесс обновления переменных среды без перезагрузки окон

  1. открыть окно командной строки cmd.
  2. введите набор PATH=C -> это обновит переменные среды.
  3. закройте и перезапустите окно командной строки.
  4. введите эхо %PATH% для проверки.

Как я могу удаленно просматривать переменные среды в Windows?

Как удаленно изменять переменные среды

  1. Шаг 1. Откройте Управление компьютером. Откройте Управление компьютером любым удобным для вас способом.
  2. Шаг 2. Подключение к удаленному компьютеру.
  3. Шаг 3. Откройте Системные свойства удаленного компьютера.
  4. Шаг 4. Измените переменную среды.
  5. Шаг 5. Выберите пользователя.

Как установить переменную среды в процессе Windows?

Переменные среды Windows. Для этого одновременно нажмите клавиши Windows и R на клавиатуре. Введите sysdm. cpl в поле ввода и нажмите Enter или нажмите Ok. В открывшемся новом окне щелкните вкладку "Дополнительно", а затем кнопку "Переменные среды" в правом нижнем углу окна.

Что произойдет, если вы удалите переменную PATH?

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

Как использовать переменную среды без перезапуска командного окна?

Используя SET после SETX, можно напрямую использовать «локальную» переменную без перезапуска командного окна. И при следующем запуске будет использоваться переменная окружения. Мне понравился подход, которому следует шоколадный, как указано в ответе анонимного труса, поскольку это чисто пакетный подход.

Как изменить переменную среды в Windows 7?

Чтобы просмотреть или изменить переменные среды: щелкните правой кнопкой мыши Мой компьютер и выберите пункт Свойства. Перейдите на вкладку «Дополнительно». Щелкните Переменные среды. Выберите один из следующих вариантов для пользовательской или системной переменной: Нажмите «Создать», чтобы добавить новое имя и значение переменной.

Как обновить переменные среды?

Если вы хотите обновить переменные среды, просто запустите resetvars.bat

Как читать и записывать переменные среды в Linux?

Для этого задания существует инструмент командной строки setx . Это для чтения и записи переменных env. Переменные сохраняются после закрытия командного окна. Он «создает или изменяет переменные среды в пользовательской или системной среде, не требуя программирования или сценариев.

Если я изменю или добавлю переменную среды, мне придется перезапустить командную строку. Есть ли команда, которую я мог бы выполнить, чтобы сделать это без перезапуска CMD?

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

26 ответов 26

В Windows 7/8/10 вы можете установить Chocolatey, в котором есть встроенный скрипт для этого.

После установки Chocolatey просто введите refreshenv .

Что я делаю не так?$>refreshenv 'refreshenv' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.

Это не работает из коробки. У вас уже должен быть установлен Chocolatey, который устанавливает скрипт refreshenv. Утверждение «В Windows 7/8/10» вводит в заблуждение

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

Создайте файл с именем resetvars.vbs, содержащий этот код, и сохраните его по пути:

Если вы хотите обновить переменные среды, просто запустите resetvars.bat

Две основные проблемы, с которыми я столкнулся при использовании этого решения, заключались в

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

б. переменная среды PATH представляет собой объединение пользовательской и системной переменных PATH.

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

Я использую странный механизм vbs+bat+temporary bat, чтобы обойти проблему экспорта переменных из vbs.

Примечание: этот скрипт не удаляет переменные.

Возможно, это можно улучшить.

ДОБАВЛЕНО

Если вам нужно экспортировать среду из одного командного окна в другое, используйте этот скрипт (назовем его exportvars.vbs ):

Запустите exportvars.vbs в окне, из которого вы хотите экспортировать, затем переключитесь на окно, в которое вы хотите экспортировать, и введите:

Возможно, вы можете избежать временного файла, используя конструкцию FOR /F "tokens=1,*" %%c IN ('resetvars.vbs')

Как я уже сказал в своем ответе, «или добавьте вручную, используя SET в существующей командной строке». что это эффективно делает. Хотя ответ хороший.

@itsadok - учитывая, что теперь это общепринятый ответ, вы должны добавить краткое объяснение в начале, чтобы поместить сценарий в контекст. то есть указать, что невозможно распространить изменение env var на открытый cmd.exe без ручного обновления, как указано выше, или путем перезапуска cmd.exe.

@Keyslinger: На самом деле это невозможно. Любая порожденная программа может обновить свою собственную среду, но не среду запущенного экземпляра cmd.exe. Пакетный файл МОЖЕТ обновить среду cmd.exe, поскольку он выполняется в том же экземпляре cmd.exe.

Имейте в виду, что некоторые программы также кэшируют переменные среды. В моем случае я запустил этот скрипт, а затем перезапустил Intellij.

Вот что использует Chocolatey.

+1 Если у вас установлен Chocolatey, вы можете просто запустить RefreshEnv, чтобы получить обновленные переменные среды в текущий сеанс.

В Windows нет встроенного механизма для распространения добавления/изменения/удаления переменной среды в уже запущенный cmd.exe либо из другого cmd.exe, либо из «Мой компьютер» -> «Свойства» -> «Дополнительно». Настройки -> Переменные среды".

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

Последний принятый ответ показывает частичное обходное решение путем ручного обновления всех переменных среды в скрипте. Сценарий обрабатывает вариант использования глобального изменения переменных среды в «Мой компьютер. Переменные среды», но если переменная среды изменена в одном cmd.exe, сценарий не распространит ее на другой работающий cmd.exe.

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

Досадно, что дополнительные экземпляры cmd.exe не учитываются. Они все должны быть уничтожены, прежде чем изменение будет отражено в любом новом cmd.exe.

Отрицательные комментарии и отметка вниз этого ответа показывают, насколько часто происходит переполнение стека. Кев дал правильный ответ. Просто потому, что вам это не нравится, это не повод снижать рейтинг.

Я наткнулся на этот ответ, прежде чем нашел более простое решение.

Просто перезапустите explorer.exe в диспетчере задач.

Я не проверял, но вам также может потребоваться повторно открыть командную строку.

Хорошо, из диспетчера задач мне не удалось перезапустить explorer.exe, только завершить его. Я сделал это, но моя панель задач была сломана. Запустить explorer;exe очень просто. Давайте «Ctrl + shift + escape» -> файл -> «выполнить новую задачу» -> «explorer.exe» сделал всю работу за меня. И да, в конце концов, env var использовался в новом окне cmd. Спасибо за все

Хорошее решение, спасибо! Чтобы расширить и обратиться к комментарию @Oscar: Запустите окно cmd от имени администратора.Используйте команду taskkill /f /im explorer.exe && explorer.exe . Это остановит процесс explorer.exe и перезапустит его.

Это работает в Windows 7: SET PATH=%PATH%;C:\CmdShortcuts

Проверил, набрав echo %PATH%, и все заработало. также установите, если вы откроете новый cmd, больше не нужны эти надоедливые перезагрузки :)

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

Хотя это и не дает ответа на вопрос, оно обеспечивает половину наилучшего рабочего решения. Я использую это - для любой переменной, которую я устанавливаю, - затем я открываю панель управления и глобально добавляю переменную среды. Мне не нравится использовать setx, потому что он наследует текущую среду, в которой могут быть переменные, которые были изменены, а не то, что я хочу постоянно. Такой способ позволяет мне избежать перезапуска консоли, чтобы использовать переменные, и в то же время избежать проблемы, связанной с их недоступностью глобально в будущем.

Используйте "setx" и перезапустите командную строку

Для этого задания существует инструмент командной строки setx. Это для чтения и записи переменных env. Переменные сохраняются после закрытия командного окна.

Он "создает или изменяет переменные среды в пользовательской или системной среде, не требуя программирования или сценариев. Команда setx также извлекает значения ключей реестра и записывает их в текстовые файлы."

Примечание: переменные, созданные или измененные с помощью этого инструмента, будут доступны в будущих командных окнах, но не в текущем командном окне CMD.exe. Итак, вам нужно перезапустить.

Если setx отсутствует:

Или изменить реестр

Чтобы программно добавить или изменить переменные системной среды, добавьте их в раздел реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment, а затем передайте сообщение WM_SETTINGCHANGE с параметром lParam, установленным в строку «Environment».< /p>

Это позволяет приложениям, таким как оболочка, получать ваши обновления.

Не могли бы вы подробнее рассказать о том, как использовать setx для чтения переменной среды? Я просмотрел различную документацию, и я просто не вижу ее. :-/

setx ПЕРЕМЕННАЯ -k "HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentVersion" echo %VARIABLE%

текущая системная среда: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\VARIABLE текущая пользовательская среда: HKEY_CURRENT_USER\Environment\VARIABLE

setx/? говорится в примечании: «В локальной системе переменные, созданные или измененные этим инструментом, будут доступны в будущих командных окнах, но не в текущем командном окне CMD.exe». OP хотел обновить текущий cmd.

Осторожно, покупатель! Если у вас особенно длинный %PATH%, то setx может урезать его до 1024 байт! Вот так его вечер испарился

Мне помог вызов этой функции:

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

Лучший способ, который я придумал, — просто выполнить запрос к реестру. Вот мой пример.

Исходный пакет вызывает новый пакет:

testenvget.cmd SDROOT (или любая другая переменная)

Также есть еще один метод, который я придумал из разных идей. Пожалуйста, смотрите ниже. Это в основном будет получать самую новую переменную пути из реестра, однако это вызовет ряд проблем, потому что запрос реестра будет давать переменные сам по себе, это означает, что везде, где есть переменная, это не будет работать, поэтому для борьбы с этой проблемой я в основном удваивают путь. Очень противно. Более предпочтительным методом было бы сделать: Set Path=%Path%;C:\Program Files\Software. \

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

Как перезапустить сервер, не перезагружая его?

Как перезагрузить Windows 10 без перезагрузки

  1. Щелкните правой кнопкой мыши меню "Пуск" или нажмите CTRL + Alt + Delete.
  2. Выберите Диспетчер задач.
  3. Найдите проводник Windows в списке процессов.
  4. Щелкните правой кнопкой мыши и выберите "Перезагрузить".

Как изменить путь без перезагрузки?

процесс обновления переменных среды без перезагрузки окон

  1. открыть окно командной строки cmd.
  2. введите набор PATH=C -> это обновит переменные среды.
  3. закройте и перезапустите окно командной строки.
  4. введите эхо %PATH% для проверки.

Нужно ли перезагружаться после обновления пути?

Нет, но вам нужно будет закрыть и заново создать все окна командной строки, запущенные Java-программы и т. п. Чтобы проверить правильность, откройте новое окно cmd и введите set -> просмотрите информацию для PATH и JAVA_HOME .

Как сбросить переменные пути?

Перейдите в свойства «Мой компьютер» -> «Дополнительные параметры системы» -> щелкните вкладку «Дополнительно» -> нажмите кнопку «Переменные среды» -> отредактируйте переменную «ПУТЬ» и вставьте все, что скопировано на третьем шаге, в -> Значение переменной: поле. Нажмите OK во всех открытых окнах.

Как принудительно изменить реестр без перезагрузки?

Принудительно вносит изменения в реестр без полной перезагрузки.

  1. Нажмите CTRL-ALT-DELETE, чтобы открыть список задач Windows.
  2. Выберите «Проводник» и нажмите «Завершить задачу».
  3. Когда появится экран завершения работы, нажмите "Отмена".
  4. Через несколько секунд появится сообщение об ошибке. Нажмите "Завершить задачу".

Как сбросить DWM?

3 ответа. Используйте Taskmanager или ProcessExplorer и просто уничтожьте/завершите процесс DWM. Winlogon.exe автоматически перезапускает процесс DWM.exe.

Как сбросить переменные среды?

Как исправить переменные пути?

  1. В Поиске найдите и выберите: Система (Панель управления)
  2. Нажмите ссылку Дополнительные параметры системы.
  3. Нажмите "Переменные среды".
  4. В окне "Редактировать системную переменную" (или "Новая системная переменная") укажите значение переменной среды PATH.
  5. Снова откройте окно командной строки и запустите код Java.

Как установить путь по умолчанию?

  1. Нажмите кнопку [Windows] > выберите «Проводник».
  2. На левой боковой панели щелкните правой кнопкой мыши «Документы» > выберите «Свойства».
  3. На вкладке "Местоположение" > введите "H:\Docs"
  4. Нажмите [Применить] > Нажмите [Нет], когда будет предложено автоматически переместить все файлы в новое место > Нажмите [ОК].

Нужно ли перезагружаться после изменения реестра?

Нет, Windows не просто обращается к реестру при запуске (Windows), так как многие настройки в реестре предназначены для чего-то другого, кроме Windows. Перезагрузка требуется не всегда.

Мгновенно ли вносятся изменения в реестр?

Изменения в реестре уже вступают в силу немедленно, однако многие приложения (и некоторые компоненты операционной системы) считывают параметры реестра только один раз при первом запуске, поэтому изменения в реестре не будут иметь никакого эффекта, пока приложение/машина не будет перезапущена.

Есть ли команда для обновления переменных среды из командной строки в Windows?

Используйте «setx» и перезапустите командную строку cmd. Для этого задания существует инструмент командной строки с именем «setx». Это для чтения и записи переменных env. Переменные сохраняются после закрытия командного окна.

Как установить переменные среды в Windows XP?

Чтобы просмотреть или изменить переменные среды:

  1. Щелкните правой кнопкой мыши "Мой компьютер" и выберите "Свойства".
  2. Перейдите на вкладку "Дополнительно".
  3. Нажмите Переменные среды.
  4. Выберите один из следующих вариантов для пользовательской или системной переменной: Нажмите «Создать», чтобы добавить новое имя и значение переменной.

Как отображать переменные среды в Windows?

В среде Windows выберите «Пуск» > «Все программы» > «Стандартные» > «Командная строка». В открывшемся командном окне введите echo %VARIABLE%. Замените VARIABLE именем переменной среды.

Требуется ли перезагрузка переменной среды?

1 ответ. Если вы устанавливаете переменную среды с помощью команды SET в интерпретаторе команд, она сразу же применяется к среде этого процесса. Без перезагрузки, без выхода из системы — больше ничего не требуется. Переменные среды, хранящиеся в реестре, на самом деле вовсе не являются переменными среды.

Как сбросить переменные среды?

Перейдите в свойства «Мой компьютер» -> «Дополнительные параметры системы» -> щелкните вкладку «Дополнительно» -> нажмите кнопку «Переменные среды» -> отредактируйте переменную «ПУТЬ» и вставьте все, что скопировано на третьем шаге, в -> Значение переменной: поле. Нажмите OK во всех открытых окнах.

Как заставить работать переменные окружения?

  1. Откройте "Начать поиск", введите "env" и выберите "Редактировать системные переменные среды":
  2. Нажмите кнопку "Переменные среды...".
  3. Задайте необходимые переменные среды. Кнопка «Создать» добавляет дополнительную переменную.
  4. Закройте все диалоговые окна, выбрав «ОК». Ваши изменения сохранены!

Как установить переменные среды без перезагрузки?

  1. В командной строке введите: runas /user:[email protected] cmd.
  2. Откроется новая командная строка, затем введите: taskkill /f /im explorer.exe.
  3. Затем введите: explorer.exe.

Как установить переменные среды?

Создание и изменение переменных среды в Windows

  1. На панели задач Windows щелкните правой кнопкой мыши значок Windows и выберите Система.
  2. В окне "Настройки" в разделе "Связанные настройки" нажмите "Дополнительные параметры системы".
  3. На вкладке "Дополнительно" нажмите "Переменные среды".
  4. Нажмите «Создать», чтобы создать новую переменную среды.

Что такое среда Windows XP?

Переменные среды используются для управления поведением пакетных файлов и программ в Windows XP; они также контролируют внешний вид и работу Windows XP и подсистемы MS-DOS. Чтобы просмотреть полный список переменных среды, активных в системе Windows XP, выполните следующие действия. Откройте окно командной строки.

Что такое команда Setx?

Команда Setx аналогична утилите UNIX SETENV. Setx предоставляет единственный способ командной строки или программный способ прямой и постоянной установки значений системной среды. Команда set, которая является внутренней для интерпретатора команд (Cmd.exe), устанавливает переменные среды пользователя только для текущего окна консоли.

Читайте также: