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

В оболочке bash вы можете редактировать переменные окружения, запустить source ./.bashrc и обновите значения переменных среды в уже открытой оболочке. Есть ли в Windows аналогичная команда, которую вы можете запустить, чтобы сделать это из командной строки?

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

4 ответа

SET variable=string

Переменная - это новая переменная, которую вы хотите создать (или существующая)

Строка - это то, что вы хотите присвоить переменной

Пример хранения текстовой строки:

C:> SET _dept = Продажи и маркетинг

Источник: http://ss64.com/nt/set.html

ПРИМЕЧАНИЕ: изменения, сделанные с SET останется только для сеанса CMD.

Я не знаю, как изменить переменную среды в системном графическом интерфейсе, а затем "изучить" ее в существующем командном окне.

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

Недостатком является то, что есть одна команда для установки глобальной переменной среды, а другая - для локального командного окна. Я не знаю способ получить их обоих в одной команде. Вместо этого у меня есть файл .BAT, который принимает имя и значение моей переменной в качестве аргументов и одновременно устанавливает глобальную и локальную переменную среды. Следующее командное окно или приложение с графическим интерфейсом увидит новое значение. Я не думаю, что запуск приложений с графическим интерфейсом или других открытых командных окон, однако.

C:>SET_ENVVARS.BAT MYVAR MYVAL
SET %1=%2
CALL SETX %1 %2 /M

У вас есть все ограничения командной строки, такие как escape-символы и кавычки, но в большинстве случаев это работает довольно хорошо.

В моем файле .BAT есть несколько наворотов, но по сути, все.

Мне очень редко приходится использовать графический интерфейс.

Я также иногда "сбрасываю" свои переменные окружения с помощью:

C:\>SET >MYVARS.TXT

Небольшое кузнечное дело даст вам источник этого.

Это не быстрое решение, но я трачу много времени на инфраструктуру файлов .BAT и обнаруживаю, что в конечном итоге я экономлю больше времени, переосмысливая свою проблему, чтобы она соответствовала тому, как лучше всего работают файлы .BAT Windows. Кроме того, иногда я прибегаю к C, например, чтобы перечислить все элементы PATH, но каждый в отдельной строке.

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

C: \ temp> set> newenv.bat

Вернитесь в Windows и откройте файл newenv.bat в вашем любимом редакторе и удалите все переменные, кроме тех, которые вы хотите сбросить. Для оставшихся добавьте слово "set" в начале строки и перепишите все после "=" новыми значениями.

Теперь вернитесь в окно DOS и запустите командный файл:

C: \ temp> newenv

... и вы увидите, что каждая строка сбрасывает переменные к вашим новым значениям. Если вы не хотите видеть сброс строк, поставьте "echo off" вверху файла.bat.

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

Вы также можете добавить значения в начало или конец текущих значений, используя%VARIABLE% в вашей команде set. Например, чтобы добавить другой каталог поиска к пути, вы можете сказать: set PATH=%PATH%;c:\bin, и он добавит его в конец, оставив текущие значения без изменений.

Есть много других гимнастических упражнений, которые вы можете выполнять с переменными окружения с помощью команды set, включая стандартные переменные%VAR%, предоставляемые cmd и т. Д. Попробуйте ввести "help set" в командной строке DOS, чтобы получить много информации о них. Основная идея, однако, заключается в том, чтобы сохранить изменения в файле bat и запустить его, чтобы спасти себя от повторного ввода изменений снова и снова...

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

Пакетный
вызов myvars.bat

другой твой код

Вы также можете вызвать файл из командной строки

Другие вопросы по тегам