LoginSignup
1
1

Windows環境のPowershell7で環境変数が反映されなくなった

Posted at

結論:writing_hand:

Powershellが読み込んでいるprofileが更新されていなかった。
コンソール上で$PROFILEを実行し、profileの場所を確認した上で、その中の$env:PATHをダイレクト修正し、問題は解消した。

経緯:closed_book:

新PCにしてPowershell7を入れて使用していて、Docker環境を後追いで追加。
環境変数にはDockerのPathが正しく入力されており、コマンドプロンプト上でも正しくPathが拾えてる。
が、Powershell7上では再起動かけようが、コマンドプロンプトで設定しようが、Powershellから設定しようが、どうにもこうにも認識しない。
※一時的なPath設定では動いたが、結局ウィンドウを開きなおすとPathが消えている。

やった対応:confounded:

  • PC再起動
  • 環境変数の位置入れ替え
  • CLIからのパス設定
  • Pathの再読み込み
    • 下記のコマンドを何も考えずコピペで入れると地獄が待っているかもなので、注意。
    • [System.Environment]::SetEnvironmentVariable('PATH' , $path , 'Machine')
    • $path変数には既存の環境変数と追加したい環境変数が入力済み。
  • 一時的なPath設定追加
    • $ENV:Path="C:\Program Files\Docker\Docker\resources\bin"+$ENV:Path
    • 実行したコンソールでは反応するようになるが、新規コンソールでは反映されない

効果があった対応:relaxed:

  1. Powershell上で$PROFILEを実行
  2. Pathにアクセス
  3. $env:PATHに追加したいPathを最後尾に記入

考察:thinking:

Profile見て思ったのは本来Propfileに追加されるべき所が、反映されない状態になっていると思われる。
この問題に行き当たったのはPowerShell 7.3.6の出来事。
結局Profileに書かれているPathが最終的な環境変数として、上書きされていたが為に反応しなくなるのも当然。

もうちょい良い対応:thinking:

今回備忘録としてQiitaに書いたが、3~4時間の出来事だし数日後にはこの苦悩もきっと忘れるだろう。
私はprofileのPathに追加したいPathをそのまま書いたが、本来あるべきはダイレクトに環境変数を見に行く仕組みにしておけば二度と困ることはないと考えている。
ps1ファイルだし多分できるはず。。。

おまけ:gift:

苦悩のさなか良く使ったコマンド

  • Winキー→env(環境変数を設定する直前のウィンドウが開く)
  • Winキー→con(コントローラパネル開く)
  • Winキー+Eキー(エクスプローラー開く)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1