web-dev-qa-db-ja.com

コマンドラインからユーザーに%PATH%を追加する方法

StackExchangeでこのような質問をたくさん見つけましたが、私の特定のケースでは誰も機能しません。

文字通り%FOO%をユーザー環境変数PATHに簡単に追加したいと思います。

私は以下の解決策を見つけました。残念ながら、期待どおりに機能しません。

for /f "skip=2 tokens=3*" %a in ('reg query HKCU\Environment /v PATH') do @if [%b]==[] ( @setx PATH "%~a;%FOO%" ) else ( @setx PATH "%~a %~b;%FOO%" )

次の場合は機能しません。

  • ユーザーPATH変数が存在しません
  • ユーザーPATHが存在し、空です
  • ユーザーPATHの長さは約255文字です。

さらに、%FOO%を文字通り追加するのではなく、拡張します。

簡単にできる可能性はありますか?

2
nowox

それはあなたがやろうとしていることに依存します:

  • 現在のコマンドラインセッションでのみPATHを更新するには、set PATH=%PATH%;%FOO%を使用します。
  • 現在のユーザーのみを対象に編集するには、setx PATH "%PATH%;%FOO%"を使用します。この変更は、currentコマンドラインセッションでは表示されないことに注意してください。新しいコマンドラインを開始する必要があります。
  • マシン上のすべてのユーザーに対して編集するには、setx /M PATH "%PATH%;%FOO%"を使用します。

パスを表示するには、コマンドラインでECHO %PATH%と入力するか、 Windows環境設定で確認します と入力します。

また、Windows 7および8では、 環境変数の最大文字列サイズ は32,767文字です。これはPATH変数にも有効ですが、コマンドコンソールのコマンドの最大長は8191文字であるため、コマンドラインコマンドでPATH変数を使用する場合は、このことを考慮する必要があります。とにかく、あなたはあなたが今持っている256文字の上にもう少しヘッドスペースを持っています。

4
agtoever