как установить переменную окружения из содержимого файла? - PullRequest
9 голосов
/ 07 января 2012

В windows / cygwin я хочу иметь возможность сохранить переменную PATH в файл на одном компьютере и загрузить ее на другой компьютер;

для хранения переменной, которую я делаю:

echo %PATH% > dat

однако, не уверен, как загрузить его позже.

set PATH=???????

Спасибо Рами

Ответы [ 4 ]

13 голосов
/ 11 января 2012

Просто используйте: set /P PATH=< dat

Вы должны заметить, что echo %PATH% > dat вставьте дополнительный пробел после значения% PATH%; это пространство может вызвать проблемы, если в переменную PATH будет добавлен дополнительный путь. Просто удалите лишнее пространство следующим образом: echo %PATH%> dat.

5 голосов
/ 07 января 2012

echo %PATH% потерпит неудачу, если PATH содержит не заключенные в кавычки & или ^ (это маловероятно, но, безусловно, возможно)

Более надежное решение заключается в использовании:

setlocal enableDelayedExpansion
echo !path!>dat

Затем вы можете использовать предложенный Аасини метод чтения значения обратно в

set /p "PATH=" <dat
3 голосов
/ 07 января 2012

Будучи зависимым от Cygwin, как насчет того, чтобы поместить команду в сохраненный файл, например:

echo "export PATH=$PATH" > dat

Затем найти скрипт позже, чтобы задать путь:

. ./dat

Примечаниечто «получение» скрипта (а не просто его выполнение) требуется для того, чтобы он изменил вашу текущую среду, а не только новую дочернюю среду.

1 голос
/ 27 марта 2013

Это может быть плохо, но в Windows я использую это:

for /F %%g in (dat) do set PATH=%%g

и это, чтобы записать файл, потому что у меня были проблемы с пробелами

echo>dat %PATH%
...