2012-01-07 2 views
8

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

для хранения переменной я делаю:

echo %PATH% > dat 

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

set PATH=??????? 

Благодаря Рами

+6

Просто используйте: 'Установка/P PATH = Aacini

+2

опубликуйте свой комментарий в качестве ответа, и я проголосую за него. –

ответ

3

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

echo "export PATH=$PATH" > dat 

Затем снабжаем сценарий позже установить путь:

. ./dat 

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

+0

на окнах я наконец-то сделал «эхо-набор PATH =% PATH%> dat.bat '; thanks – sramij

5

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

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

setlocal enableDelayedExpansion 
echo !path!>dat 

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

set /p "PATH=" <dat 
11

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

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

+1

Для меня это работает только для первых 1024 символов файла. Извините, я пропустил тот факт, что это было на cygwin. Возможно, он работает лучше под cygwin. –

+0

@ RussellGallop, вы нашли обходное решение для этого ограничения? – xverges

+0

'set/P' может читать только 1024 символа. Чтобы узнать больше, используйте 'for/F', как показано в ответе SpaceMonkey ниже. – Aacini

1

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

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

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

echo>dat %PATH% 
Смежные вопросы