バッチファイルを使用して環境変数の値を検索および置換しますか?

バッチファイルを使用して環境変数の値を検索および置換しますか?

別の環境で作業できるように PATH 変数をすばやく切り替えるバッチ ファイルを作成し、その後それを復元する別のバッチ ファイルを作成したいと考えています。setx何らかの形式の検索と置換を介して実行されると思いますが、バッチ ファイルについてはまったく知りません。

答え1

これはあなたの質問に直接答えているわけではありませんが、あなたの問題は解決します。そのため、私はこれをコメントではなく回答として価値があると判断しました。

PATH 環境変数には複数のパスを保存できます。検索されるパスの順序は左から右です。つまり、PATH 環境変数の先頭にパスを追加すると、それが最初に検索されます。

これにより、他のパスを確実に削除する必要がある場合を除き、既存のパスを置き換える必要がなくなります (このソリューションではそれができません)。

PATH 環境の先頭にフォルダーを追加するには、次のコードを使用します。

set PATH=c:\myfolder;%PATH%

;%PATH% は必ず存在する必要があります。そうしないと、パス セットがクリアされ、独自のフォルダーのみに完全に置き換えられます。

set コマンドが使用されている場合、現在のセッションのパスのみが保存されます。パスを Windows 環境に転送して各セッションで記憶されるようにするには、次のコマンドを実行する必要があります。

setx PATH "%PATH%"

後で復元するために使用することを考慮すると、異なるパスを使用するものを起動するためのバッチ ファイルを 2 つ作成することをお勧めします。代替パスを使用するファイルでは SET コマンドから開始し、実際のパスを使用するファイルではコマンドを使用しません。

この方法では、代替パスのバッチ ファイルを実行するたびに、このパスが追加され、最初に検索されるため、そのパスが見つかります。

最後に、他の環境変数に基づいて PATH を設定することも可能であり、切り替えることができます。

まず、元のパスのコピーを 2 つ作成する必要があります。

setx PATH_orig "%PATH%"
setx PATH_alt "%PATH%"

次に、通常の PATH を編集するのと同じように PATH_alt を編集します。

次のコマンドを使用して簡単に切り替えることができます。

:: Restore to original
setx PATH "PATH_orig"

:: Set alternate path
setx PATH "PATH_alt"

関連情報