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

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

3 ответа3

0

SET variable=string

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

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

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

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

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

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

0

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

C:\temp> set> newenv.bat

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

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

C:\temp> newenv

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

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

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

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

0

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

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

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

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

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

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

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

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

C:\>SET >MYVARS.TXT

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

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

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