PowerShellでPATHを一時変更する ― Processスコープで同名CLIの探索順を試す

PowerShellカテゴリを表すパンダのイラスト PowerShell

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。PowerShellの環境変数とGet-Commandの公式仕様を基準に、User/Machine PATHを変更しない一時実験として構成しています。

検証ステータス:Microsoft公式仕様確認済み・Windows実機未確認

CLIを更新したら別バージョンが起動する――そんなとき、恒久PATHを触る前に現在のPowerShellだけで探索順を再現できます。

成功条件

自分で作ったA/Bの2ディレクトリに同名のテストコマンドを置き、PATH順を A→B から B→A へ変えると実行対象が切り替わることです。

$oldPath = $env:Path
$env:Path = "C:\Temp\A;C:\Temp\B;$oldPath"
Get-Command papanda-demo.cmd -All

Daily-Code版は$env:TEMPへ一時ディレクトリを自動作成するため、固定のC:\Tempを前提にしません。

ここを見る

Get-Command -AllSource を見ます。PATHの前方にある実行ファイルが候補順へ影響します。ただしPowerShellにはalias/function等を含むcommand precedenceもあるため、「PATHだけが全ルール」ではありません。

1か所変える

A;BB;A へ入れ替えます。User/Machine PATHは変更せず、現在プロセスの $env:Path だけが変わります。

仕事で使うなら

Python、Git、Node.jsなどの新旧CLI比較や「どのexeが呼ばれているか」の切り分けに使えます。

セキュリティ上の注意

信頼できないディレクトリをPATH前方へ置くと、同名の偽コマンドを先に実行する危険があります。サンプルは自分で作った一時ディレクトリだけを使い、finallyでPATHとファイルを戻します。

公式情報・一次情報

GitHubサンプル

文書情報

記事タイトル
PowerShellでPATHを一時変更する ― Processスコープで同名CLIの探索順を試す
作成日
更新日
Source URL
https://papanda925.com/?p=16618

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました