を使用して Windows PATH 変数を変更したいと考えていますsetx
。以下は、Windows 8 で少なくとも 50% の時間動作します。
setx PATH %PATH%;C:\Python27\;C:\Python27\Scripts\
「デフォルトの引数は2回しか使用できません」というエラーが表示される場合、次のようにするとうまくいくことがあります。
setx PATH "%PATH%;C:\Python27\;C:\Python27\Scripts\"
違いは、2 番目の引数を引用符で囲んだことです。%PATH%
スペースを含むように展開する場合は、引用符が必要だと思います。
しかし、Windows 7 で奇妙な問題に遭遇しました。ある特定の Windows 7 マシンで、次の問題が発生しました。
echo %PATH%
それは印刷します:
C:\Foo\;C:\Bar\;[...lots of stuff...]C:\Baz\
次に、これを行います:
setx PATH "%PATH%;C:\Quux\"
次に、「エラー: 1,024 文字で切り捨てられました」と表示されます。次に、PATH に何が含まれているかを確認しましょう。
echo %PATH%
それは印刷します:
C:\Foo\;C:\Foo\;C:\Bar\;C:\Bar\;[...lots of stuff, now duplicated...]C:\B
...そして、1,024 文字で切り捨てられます。重複したため、実行されました。setx
また興味深い:エラーが発生し、「成功」とは言わなかったにもかかわらず、PATH の値が変化します。
この奇妙な動作を数回繰り返すことができました (幸いなことに、PATH の元の内容を保存していました)。
現時点で、PATHに追加する唯一の確実な方法は次のとおりです。
echo
パス。PATH の内容をテキスト ファイルにコピーし、手動で
;C:\Python27\;C:\Python27\Scripts\
PATH の末尾に追加します。テキスト ファイルからすべてをコピーします。
setx PATH "<paste the string here>"
このプロセスは、Windows 7 と Windows 8 の両方で毎回機能します。
これを 1 つのコマンドで実行できるはずです。私は何を間違っていますか?