2012-01-07 7 views
8

Windows/cygwinでは、PATH変数を1台のマシンのファイルに保存して他のマシンにロードできます。私がやっている変数を格納するためのファイルの内容から環境変数を設定する方法は?

echo %PATH% > dat 

しかし、後でそれをロードする方法がわかりません。そして、パスを設定するために、後でスクリプトを調達

echo "export PATH=$PATH" > dat 

: ラミ

+6

とのトラブルがあったので、ファイルを書き込むことが

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

、これを Aacini

+2

あなたのコメントを回答として投稿し、私はそれを投票したいと思います。 –

答えて

3

がどのようにどのように保存したファイルにコマンドを置くことについて、例えばCygwinの、に依存している

set PATH=??????? 

おかげ

. ./dat 

スクリプトを「調達する」(対して単に実行する)新しい子環境だけではなく、現在の環境を変更するために必要です。 PATHは、引用符で囲まれていない&や^が含まれている場合echo %PATH%は失敗します

+0

私は最終的に 'echo set PATH =%PATH%> dat.bat'を実行しました。ありがとう – sramij

5

(これはおそらく、確かに可能ではない)

より信頼性の高いソリューションを使用することです:

setlocal enableDelayedExpansion 
echo !path!>dat 

次にあなたがAaciniのを使用することができます

set /p "PATH=" <dat 
11

に戻って値を読み取る提案された方法だけを使用します。set /P PATH=< dat

echo %PATH% > datは、%PATH%valueの後に追加のスペースを挿入することに注意する必要があります。 PATH変数に追加のパスが後で追加されると、そのスペースが問題を引き起こす可能性があります。このように余分なスペースをなくすだけです:echo %PATH%> dat

+1

私の場合、これはファイルの最初の1024文字でのみ動作します。申し訳ありませんが、私はcygwin上にあったという事実を逃しました。 Cygwinでうまくいくかもしれません。 –

+0

@ RussellGallop、この制限の回避策を見つけましたか? – xverges

+0

'set/P'は1024文字しか読み取れません。もっと読むには、下記のSpaceMonkeyの答えにあるように 'for/F'を使います。 – Aacini

1

これは悪であるかもしれないが、Windows上で、私はこの使用しています: `設定/ Pパスを=:私はちょうど使用スペース

echo>dat %PATH% 
関連する問題